h3mky0's blog

主に競プロについて書きます

AOJ2709 Dark Room

問題リンク
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2709&lang=jp


暗い部屋の数が M \leq 16であるため, bitを状態に持つことを考える.
同じ部屋に複数存在する場合など, 状態をどう持てば解くことができるかかなり手間取ったが, dp[S] := 1人以上いる暗い部屋の集合をSとする. この集合が出来るまでの最小操作数を考える.
初期条件はdp[2^M-1]=0としておき, BFSで最短経路を求める感じで更新していけばよい.

提出コード
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4919453