DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord連携を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

ペペロを配ろう 2

問題に戻る

解説

小課題1 空きマス数をKKKとし、2K2^K2K通りを全探索して全生徒が両方の味を受け取るか確認する。時間計算量はO(2KNM)O(2^K NM)O(2KNM)である。

全体解法 各行と各列を頂点にし、空きマス(i,j)(i,j)(i,j)ごとに行iiiと列jjjを結ぶ辺を作る。横向きの箱は行頂点へ、縦向きの箱は列頂点へ辺を向けることに対応する。生徒がいる行・列の頂点を必須頂点と呼ぶ。条件はすべての必須頂点の入次数が正であることと同値である。

木の連結成分では辺数が頂点数より111少ない。全頂点が必須なら不可能である。必須でない頂点があれば、それを根として辺を子の方向に向ける。根以外の全頂点に入る辺ができる。

閉路を含む成分では全域木と木に含まれない辺(r,c)(r,c)(r,c)を選ぶ。rrrを根として木の辺を子方向に向け、選んだ追加辺をrrrに向ける。これですべての頂点に入る辺ができる。残りの辺の向きは任意でよい。孤立頂点も木の規則で扱える。

したがって、必須頂点だけからなる木成分がある場合に限り不可能である。DSUで全域森と追加辺を求め、根を選んで反復的に走査する。時間計算量はO(NMα(N+M))O(NM\alpha(N+M))O(NMα(N+M))、空間計算量はO(NM+N+M)O(NM+N+M)O(NM+N+M)である。

Solution written by GPT6.1