競技プログラミング用 知識集積所

ABC404C - Cycle Graph?

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

サイクルグラフであることの必要十分条件を考える。

まず、サイクルグラフであれば、全ての頂点から2本の辺が出ている。
しかし、全ての頂点から2本の辺が出ていればサイクルグラフかといえばそうではない。
なぜなら、1-2-3-1でサイクル、4-5-6-4でサイクル、のように複数のサイクルに分かれてしまっている場合があるため。

そこで、きちんと1つのサイクルになっていることを保証するため、UnionFind木を用いて連結成分が1つであることを確認する。

解答例


注意点


別解

幅優先探索(未作成)で対応する。

まず、1つ目の辺を切断する。
1つ目の辺の片側からを支点としてBFSを行い、逆の片側までの最短距離がn-1であるかどうかを判定することで解ける。
m=0の場合の特別対応が必要なことに注意。
解答例(未作成)
ウィキ募集バナー