atcoder#ABC304E. [ABC304E] Good Graph

[ABC304E] Good Graph

题目描述

N N 頂点 M M 辺の無向グラフ G G が与えられます。 i = 1, 2, , M i\ =\ 1,\ 2,\ \ldots,\ M について、i i 番目の辺は頂点 ui u_i と頂点 vi v_i を結ぶ無向辺です。

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

  • G G 上で頂点 xi x_i と頂点 yi y_i を結ぶパスが存在しない。

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

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

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

という質問です。

输入格式

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

N N M M u1 u_1 v1 v_1 u2 u_2 v2 v_2 \vdots uM u_M vM v_M K K x1 x_1 y1 y_1 x2 x_2 y2 y_2 \vdots xK x_K yK y_K Q Q p1 p_1 q1 q_1 p2 p_2 q2 q_2 \vdots pQ p_Q qQ q_Q

输出格式

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

题目大意

题目描述

给定无向图 G G ,其包含 N N 个顶点和 M M 条边。对于 i=1,2,,M i = 1, 2, \dots, M ,第 i i 条边连接着结点 ui u_i 与结点 vi v_i

如果图 G G 满足以下条件:

  • 对于所有 i=1,2,,K i = 1, 2, \dots, K ,结点 xi x_i 与结点 yi y_i 之间均没有路径连接。

则称图 G G 是一张好图

给定 Q Q 独立的询问,请你逐个回答。对于 i=1,2,,Q i = 1, 2, \dots, Q ,第 i i 次询问内容如下:

  • 在图 G G 上添加一条连接着结点 pi p_i 与结点 qi q_i 的无向边,由此得到的新图 G(i) G^{(i)} 是否是一张好图?

样例解释

  • 对于第一次询问,图 G(1) G^{(1)} 不是一张好图,因为该图存在连接着结点 x1=1 x_1 = 1 与结点 y1=5 y_1 = 5 的路径 125 1 \to 2 \to 5 。因此,输出No
  • 对于第二次询问,图 G(2) G^{(2)} 不是一张好图,因为该图存在连接着结点 x2=2 x_2 = 2 与结点 y2=6 y_2 = 6 的路径 26 2 \to 6 。因此,输出No
  • 对于第三次询问,图 G(3) G^{(3)} 是一张好图。因此,输出Yes
  • 对于第四次询问,图 G(4) G^{(4)} 是一张好图。因此,输出Yes

正如样例所示,给定的图 G G 可能存在自环与重边。

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

提示

制約

  • 2  N  2 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 0  M  2 × 105 0\ \leq\ M\ \leq\ 2\ \times\ 10^5
  • 1  ui, vi  N 1\ \leq\ u_i,\ v_i\ \leq\ N
  • 1  K  2 × 105 1\ \leq\ K\ \leq\ 2\ \times\ 10^5
  • 1  xi, yi  N 1\ \leq\ x_i,\ y_i\ \leq\ N
  • xi  yi x_i\ \neq\ y_i
  • $ i\ \neq\ j\ \implies\ \lbrace\ x_i,\ y_i\ \rbrace\ \neq\ \lbrace\ x_j,\ y_j\ \rbrace $
  • すべての i = 1, 2, , K i\ =\ 1,\ 2,\ \ldots,\ K について次が成り立つ:頂点 xi x_i と頂点 yi y_i を結ぶパスは存在しない。
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • 1  pi, qi  N 1\ \leq\ p_i,\ q_i\ \leq\ N
  • pi  qi p_i\ \neq\ q_i
  • 入力はすべて整数

Sample Explanation 1

- 1 1 番目の質問に関して、グラフ G(1) G^{(1)} は良いグラフではありません。なぜなら、頂点 x1 = 1 x_1\ =\ 1 と頂点 y1 = 5 y_1\ =\ 5 を結ぶパス 1  2  5 1\ \rightarrow\ 2\ \rightarrow\ 5 を持つからです。よって、No と出力します。 - 2 2 番目の質問に関して、グラフ G(2) G^{(2)} は良いグラフではありません。なぜなら、頂点 x2 = 2 x_2\ =\ 2 と頂点 y2 = 6 y_2\ =\ 6 を結ぶパス 2  6 2\ \rightarrow\ 6 を持つからです。よって、No と出力します。 - 3 3 番目の質問に関して、グラフ G(3) G^{(3)} は良いグラフです。よって、Yes と出力します。 - 4 4 番目の質問に関して、グラフ G(4) G^{(4)} は良いグラフです。よって、Yes と出力します。 この入力例のように、与えられるグラフ G G が自己ループや多重辺を持つ場合があることに注意してください。