きろく

特筆すべき記録のまとめ

JOI '09 本選:5- 認証レベル

問題

https://www.ioi-jp.org/joi/2008/2009-ho-prob_and_sol/2009-ho.pdf

解法

各事務所についてどれぐらいの数の部屋をどれぐらいの認証レベルで入ることが出来るのかが知りたい.ここで,各事務所のマス上で BFS をする.具体的には,(今の認証レベル,今の座標) という状態をキューに持って置き,今の認証レベルの小さい状態から隣接する4方向に移動する.このとき,今の認証レベルが今の座標の部屋のレベルよりも小さい場合は,今の認証レベルを部屋のレベルまで引き上げる.この BFS によって各事務所について,ある入る部屋数に必要な認証レベルの最小値が求まったので,片方の事務所で入る部屋数を決めたときもう片方で入る最小の部屋数も定まり,必要な認証レベルの和も求まる.あとはこの和の最小値を答えにすればよい.O(HWlogHW).

解答

atcoder.jp

BFS で実装すべきところを DFS で実装していたため,原因不明の無限ループが発生してしまっていた.

f:id:babcs2035:20190312134017p:plain