atcoder#ABC302E. [ABC302E] Isolation

[ABC302E] Isolation

配点 : 425425

問題文

最初 NN 頂点 00 辺の無向グラフがあり、各頂点には 11 から NN まで番号がついています。 QQ 個のクエリが与えられるので、順に処理し、各クエリの後における「他のどの頂点とも辺で結ばれていない頂点」の数を出力してください。

ii 個目のクエリは queryi\mathrm{query}_i であり、各クエリは次の 22 種類いずれかです。

  • 1 u v: 頂点 uu と頂点 vv を辺で結ぶ。このクエリが与えられる直前の時点で、頂点 uu と頂点 vv は辺で結ばれていない事が保証される。
  • 2 v : 頂点 vv と他の頂点を結ぶ辺をすべて削除する。(頂点 vv 自体は削除しない。)

制約

  • 2N3×1052 \leq N\leq 3\times 10^5
  • 1Q3×1051 \leq Q\leq 3\times 10^5
  • 11 番目の種類のクエリにおいて、1u,vN1\leq u,v\leq N, uvu\neq v
  • 22 番目の種類のクエリにおいて、1vN1\leq v\leq N
  • 11 番目の種類のクエリの直前の時点で、そのクエリの u,vu,v について頂点 uu と頂点 vv は辺で結ばれていない。
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN QQ

query1\mathrm{query}_1

query2\mathrm{query}_2

\vdots

queryQ\mathrm{query}_Q

出力

QQ 行出力せよ。 ii 行目 (1iQ)(1\leq i\leq Q) には、ii 個目のクエリを処理した後の「他のどの頂点とも辺で結ばれていない頂点」の数を出力せよ。

3 7
1 1 2
1 1 3
1 2 3
2 1
1 1 2
2 2
1 1 2
1
0
0
1
0
3
1

11 個目のクエリの後で、頂点 11 と頂点 22 は互いに結ばれており、頂点 33 のみが他のどの頂点とも辺で結ばれていません。 よって、11 行目には 11 を出力します。

また、33 個目のクエリの後でどの相異なる 22 頂点の間も辺で結ばれていますが、44 個目のクエリによって、 頂点 11 と他の頂点を結ぶ辺、すなわち 頂点 11 と頂点 22 を結ぶ辺および頂点 11 と頂点 33 を結ぶ辺が削除されます。 この結果として、頂点 22 と頂点 33 は互いに結ばれているが、頂点 11 は他のどの頂点とも辺で結ばれていない状態となります。 よって、33 行目には 00 を、44 行目には 11 を出力します。

2 1
2 1
2

22 番目の種類のクエリを行う直前の時点で、すでにその頂点と他の頂点を結ぶ辺が 11 本も存在しないこともあります。