POJ 3367 Evacuation
写経してただけなのにWAが出続けてイミフだった。
自分の2部グラフの最大マッチングがバグっているのだろうか。
問題
XxYマスの部屋がある。
それぞれのマスは、床'.',壁'X',ドア'D'のいずれかであり、
ドアは部屋の内部にはない。
最初それぞれの床には一人の人がいて、全員がドアから部屋を脱出したい。
人は、1秒に上下左右の好きなマスに動くことができるが、壁には入ることはできない。
一つのドアは1秒に一人しか通ることができない。
全員が避難するまでにかかる時間の最小値を求めよ。
制約条件
X,Y≦12
方針
蟻本の解説の通り。
それぞれの人間を左側の頂点に、1秒からn秒までのドアを右側にするような二部グラフを作る。
その時間でドアに辿り着けるとき、人間の頂点とドアの頂点に辺を貼る。
1秒のドアから順に最大マッチングを行っていき、全員がマッチングできたときが、
全員が脱出するのにかかる最短の時間である。
ソースコード
写経なので略。