第一回日本最強プログラマー学生選手権決勝 B - Reachability
問題
頂点の有効グラフの頂点の
- からへ向かう辺が存在するか
- からへのパスが存在するか
がわかっている。この条件を満たすからへ向かう辺の集合があれば求める。
考察
これらの条件を満たさないのは、
- からへのパスがないが、からへの辺があり、からへの辺があるようながある
- からへのパスがあるが、からへの辺があり、からへの辺があるようながない
のいずれかである。また、前者は全てのからの辺が存在しない、後者は全てのから全てのへの辺を追加すれば解決する。 よって、一方を最低限満たすような辺の集合を作ったときに、他方が満たされるかを判定すればいい。
はじめ、全てのから全てのへの辺を用意する。これから、前者の条件を満たすように最低限の辺を削除する。 このとき、後者の条件が満たされているかを判定する。