AT_abc306_g [ABC306G] Return to 1
Description
[problemUrl]: https://atcoder.jp/contests/abc306/tasks/abc306_g
$ N $ 頂点 $ M $ 辺の有向グラフがあります。 頂点には $ 1 $ から $ N $ までの番号が付けられていて、$ i $ 番目の辺は頂点 $ U_i $ から頂点 $ V_i $ に向かって伸びています。
あなたは今頂点 $ 1 $ にいます。 以下の行動をちょうど $ 10^{10^{100}} $ 回繰り返して頂点 $ 1 $ に戻ってくることが可能かどうか判定してください。
- 今いる頂点から伸びている辺を $ 1 $ つ選び、その辺が伸びている先の頂点に移動する。
$ T $ 個のテストケースが与えられるので、それぞれについて解いてください。
Input Format
入力は以下の形式で標準入力から与えられる。 ここで $ \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 $
Output Format
$ T $ 行出力せよ。
$ i\ (1\leq\ i\ \leq\ T) $ 行目には、 $ i $ 番目のテストケースにおいて問題文中の行動をちょうど $ 10^{10^{100}} $ 回繰り返して頂点 $ 1 $ に戻ってくることが可能ならば `Yes` を、 そうでないならば `No` を出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 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) $
### Sample Explanation 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` です。