#4771. Return to 1

0

Return to 1

Return to 1

题目描述

我们有一个有向图,包含 NN 个顶点和 MM 条边。 顶点编号为 11 到 NN,第 ii 条边从顶点 UiU_i 指向顶点 ViV_i。 你当前位于顶点 11。 判断你是否可以通过重复以下操作 101010010^{10^{100}} 次最终回到顶点 11:

选择一条从你当前所在顶点出发的边,移动到该边指向的顶点。

给定 TT 个测试用例,对每个测试用例求解。

输入格式

输入从标准输入按以下格式给出。 这里,testi\text{test}_i 表示第 ii 个测试用例。 TT test1\text{test}_1 test2\text{test}_2 ⋮\vdots testT\text{test}_T

每个测试用例按以下格式给出。 NN MM U1U_1 V1V_1 U2U_2 V2V_2 ⋮\vdots UMU_M VMV_M

输出格式

输出 TT 行。 第 ii 行 (1≤i≤T)(1\leq i \leq T) 应包含 YesYes,如果你在执行题目中描述的移动 101010010^{10^{100}} 次后可以回到顶点 11, 否则输出 NoNo。

4
2 2
1 2
2 1
3 3
1 2
2 3
3 1
7 10
1 6
6 3
1 4
5 1
7 1
4 5
2 1
4 7
2 7
4 3
7 11
1 6
6 3
1 4
5 1
7 1
4 5
2 1
4 7
2 7
4 3
3 7
Yes
No
No
Yes

提示

所有输入值均为整数。 1≤T≤2×1051\leq T \leq 2\times 10^5 2≤N≤2×1052\leq N \leq 2\times 10^5 1≤M≤2×1051\leq M \leq 2\times 10^5 所有测试用例中 NN 的总和至多为 2×1052 \times 10^5。 所有测试用例中 MM 的总和至多为 2×1052 \times 10^5。 1≤Ui,Vi≤N1 \leq U_i, V_i \leq N Ui≠ViU_i \neq V_i 若 i≠ji\neq j,则 (Ui,Vi)≠(Uj,Vj)(U_i,V_i) \neq (U_j,V_j)。对于第 1 个测试用例,

你必然重复访问顶点 1→2→1→…1 \rightarrow 2 \rightarrow 1 \rightarrow \dots。 因此,在进行 101010010^{10^{100}} 次移动后你会回到顶点 11,所以答案是 YesYes。

对于第 2 个测试用例,

你必然重复访问顶点 $1 \rightarrow 2 \rightarrow 3 \rightarrow 1 \rightarrow \dots$。 因此,在进行 101010010^{10^{100}} 次移动后你会到达顶点 22,所以答案是 NoNo。

标签: AtCoder|abc306G

来源

AtCoder|abc306G