AT_abc306_g [ABC306G] Return to 1

题目描述

有一个包含 $N$ 个顶点、$M$ 条边的有向图。顶点编号为 $1$ 到 $N$,第 $i$ 条边从顶点 $U_i$ 指向顶点 $V_i$。 你现在位于顶点 $1$。请判断,是否有可能恰好经过 $10^{10^{100}}$ 次如下操作后回到顶点 $1$: - 从当前所在的顶点选择一条出边,移动到该边指向的顶点。 有 $T$ 组测试数据,请分别作答。

输入格式

输入以如下格式从标准输入给出。这里 $\text{test}_i$ 表示第 $i$ 个测试用例。 > $T$ > $\text{test}_1$ > $\text{test}_2$ > $\vdots$ > $\text{test}_T$ 每个测试用例的格式如下: > $N$ $M$ > $U_1$ $V_1$ > $U_2$ $V_2$ > $\vdots$ > $U_M$ $V_M$

输出格式

输出 $T$ 行。 第 $i$ 行输出第 $i$ 个测试用例的答案。如果可以恰好经过 $10^{10^{100}}$ 次操作后回到顶点 $1$,输出 `Yes`,否则输出 `No`。

说明/提示

### 限制条件 - 所有输入均为整数。 - $1 \leq T \leq 2 \times 10^5$ - $2 \leq N \leq 2 \times 10^5$ - $1 \leq M \leq 2 \times 10^5$ - 所有测试用例中 $N$ 的总和不超过 $2 \times 10^5$ - 所有测试用例中 $M$ 的总和不超过 $2 \times 10^5$ - $1 \leq U_i, V_i \leq N$ - $U_i \neq V_i$ - 若 $i \neq j$,则 $(U_i, V_i) \neq (U_j, V_j)$ ### 样例解释 1 对于第 $1$ 个测试用例, - 只能不断地 $1 \rightarrow 2 \rightarrow 1 \rightarrow \dots$ 循环移动。此时,经过 $10^{10^{100}}$ 次移动后会回到顶点 $1$,所以答案为 `Yes`。 对于第 $2$ 个测试用例, - 只能不断地 $1 \rightarrow 2 \rightarrow 3 \rightarrow 1 \rightarrow \dots$ 循环移动。此时,经过 $10^{10^{100}}$ 次移动后会停在顶点 $2$,所以答案为 `No`。 由 ChatGPT 4.1 翻译