atcoder#ABC304E. [ABC304E] Good Graph

[ABC304E] Good Graph

配点 : 475475

問題文

NN 頂点 MM 辺の無向グラフ GG が与えられます。 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結ぶ無向辺です。

NN 頂点のグラフは、すべての i=1,2,,Ki = 1, 2, \ldots, K について下記の条件が成り立つとき、良いグラフと呼ばれます。

  • GG 上で頂点 xix_i と頂点 yiy_i を結ぶパスが存在しない。

与えられるグラフ GG は良いグラフです。

QQ 個の独立な質問が与えられるので、それらすべてに答えてください。 i=1,2,,Qi = 1, 2, \ldots, Q について、ii 番目の質問は

  • 入力で与えられたグラフ GG に頂点 pip_i と頂点 qiq_i を結ぶ無向辺を 11 本追加して得られるグラフ G(i)G^{(i)} は良いグラフですか?

という質問です。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 0M2×1050 \leq M \leq 2 \times 10^5
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 1K2×1051 \leq K \leq 2 \times 10^5
  • 1xi,yiN1 \leq x_i, y_i \leq N
  • xiyix_i \neq y_i
  • $i \neq j \implies \lbrace x_i, y_i \rbrace \neq \lbrace x_j, y_j \rbrace$
  • すべての i=1,2,,Ki = 1, 2, \ldots, K について次が成り立つ:頂点 xix_i と頂点 yiy_i を結ぶパスは存在しない。
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1pi,qiN1 \leq p_i, q_i \leq N
  • piqip_i \neq q_i
  • 入力はすべて整数

入力

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

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

KK

x1x_1 y1y_1

x2x_2 y2y_2

\vdots

xKx_K yKy_K

QQ

p1p_1 q1q_1

p2p_2 q2q_2

\vdots

pQp_Q qQq_Q

出力

QQ 行出力せよ。 i=1,2,,Qi = 1, 2, \ldots, Q について、ii 行目には ii 番目の質問に対する答えを出力せよ。 具体的には、グラフ G(i)G^{(i)} が良いグラフである場合は Yes を、良いグラフでない場合は No を出力せよ。

6 6
1 2
2 3
2 3
3 1
5 4
5 5
3
1 5
2 6
4 3
4
2 5
2 6
5 6
5 4
No
No
Yes
Yes
  • 11 番目の質問に関して、グラフ G(1)G^{(1)} は良いグラフではありません。なぜなら、頂点 x1=1x_1 = 1 と頂点 y1=5y_1 = 5 を結ぶパス 1251 \rightarrow 2 \rightarrow 5 を持つからです。よって、No と出力します。
  • 22 番目の質問に関して、グラフ G(2)G^{(2)} は良いグラフではありません。なぜなら、頂点 x2=2x_2 = 2 と頂点 y2=6y_2 = 6 を結ぶパス 262 \rightarrow 6 を持つからです。よって、No と出力します。
  • 33 番目の質問に関して、グラフ G(3)G^{(3)} は良いグラフです。よって、Yes と出力します。
  • 44 番目の質問に関して、グラフ G(4)G^{(4)} は良いグラフです。よって、Yes と出力します。

この入力例のように、与えられるグラフ GG が自己ループや多重辺を持つ場合があることに注意してください。