C - 森ですか? Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

問題

NN 頂点の完全グラフと MM 個のクエリが与えられる. グラフとは,頂点と呼ばれる点と,辺と呼ばれる頂点と頂点を結ぶ線からなる図形の事である. 完全グラフは,すべての2つの頂点に対してそれを結ぶ辺が1つ存在するようなグラフの事である.


頂点数5の完全グラフの例

各クエリは (SS, TT) という形で与えられ,

  • 頂点 SSTT の間に辺があるなら取り除く
  • 頂点 SSTT の間に辺がないなら付け加える

という操作を行う.


左のグラフのときに(1, 3)というクエリが来ると,頂点1と3の間の辺を取り除く.

左のグラフのときに(1, 3)というクエリが来ると,頂点1と3の間に辺を加える.

各クエリ後に,グラフが森かどうかを出力するプログラムを作成せよ. 森とは,閉路(下図の1→4→5→1のようにループになっているところ)を持たないグラフの事である.


森でないグラフの例

森の例

全体がつながっていなくても森になる.

入力Copy

Copy
NN MM
S1S_1 T1T_1
......
SmS_m TmT_m

入力の1行目には完全グラフの頂点数 NN と, クエリの個数 MM が与えられる. 続く MM 行にクエリの情報(SiS_i, TiT_i)が与えられる.

ただし、グラフの頂点は 11 から NN まで番号付けされているとする.

出力

各クエリ毎に処理した結果が森ならば yes, そうでないならば no と1行に出力せよ.

制約

  • 2N100,0002 \leq N \leq 100,000
  • 0M100,0000 \leq M \leq 100,000
  • 1Si,TiN1 \leq S_i, T_i \leq N
  • SiTiS_i \neq T_i

部分点

この問題の判定には,50点分のテストケースのグループが設定されている. このグループに含まれるテストケースの入力は以下の条件を満たす.

  • 2N1002 \leq N \leq 100
  • 0M1000 \leq M \leq 100

入力例 1Copy

Copy
3 4
1 2
1 2
2 3
1 2

入力例 1 に対する出力例Copy

Copy
yes
no
yes
yes

クエリに対して,下図のようにグラフが変化する.


入力例 2Copy

Copy
4 4
1 2
1 4
2 3
3 4

入力例 2 に対する出力例Copy

Copy
no
no
yes
yes


2025-04-05 (Sat)
11:25:58 +00:00