atcoder#ABC236G. [ABC236G] Good Vertices
[ABC236G] Good Vertices
题目描述
頂点の有向グラフがあります。 個の頂点はそれぞれ頂点 、頂点 、、頂点 と呼ばれます。 時刻 には、このグラフには辺がありません。
について、時刻 に頂点 から頂点 への有向辺が追加されます。 (追加される辺が自己ループである場合、すなわち の場合もあります。)
頂点 から始め「現在いる頂点からちょうど 本の有向辺をたどって到達できる頂点を つ選び、選んだ頂点に移動する」ことをちょうど 回繰り返して到達できる頂点を「良い頂点」と呼びます。
について、頂点 が良い頂点となる最小の時刻を出力してください。ただし、頂点 が良い頂点となる時刻が存在しない場合は、代わりに を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
下記の形式の通り、 について、頂点 が良い頂点となる最小の時刻 を出力せよ。ただし、頂点 が良い頂点となる時刻が存在しない場合は、 とせよ。
题目大意
有一个有 个节点的有向图,最开始没有一条边,接下来有 次操作,第 次加入一条 到 的有向边(可能存在自环)。
定义一个节点是好节点当且仅当能从 号节点出发经过恰好 条边到达该节点。
输出每个节点成为好节点的最少操作次数,如果不能,输出 。
4 5 3
2 3
3 4
1 2
3 2
2 2
-1 4 5 3
2 1 1000000000
1 2
-1 -1
提示
制約
- $ i\ \neq\ j\ \Rightarrow\ (u_i,\ v_i)\ \neq\ (u_j,\ v_j) $
- 入力はすべて整数
Sample Explanation 1
時刻 ではグラフは辺を持ちません。その後、以下の通りに辺の追加が行われます。 - 時刻 に、頂点 から頂点 への有向辺が追加されます。 - 時刻 に、頂点 から頂点 への有向辺が追加されます。 - 時刻 に、頂点 から頂点 への有向辺が追加されます。これによって、頂点 から頂点 に $ 1\ \rightarrow\ 2\ \rightarrow\ 3\ \rightarrow\ 4 $ とちょうど 回の移動で到達できるようになり、頂点 は良い頂点に変わります。 - 時刻 に、頂点 から頂点 への有向辺が追加されます。これによって、頂点 から頂点 に $ 1\ \rightarrow\ 2\ \rightarrow\ 3\ \rightarrow\ 2 $ とちょうど 回の移動で到達できるようになり、頂点 は良い頂点に変わります。 - 時刻 に、頂点 から頂点 への有向辺(自己ループ)が追加されます。これによって、頂点 から頂点 に $ 1\ \rightarrow\ 2\ \rightarrow\ 2\ \rightarrow\ 3 $ とちょうど 回の移動で到達できるようになり、頂点 は良い頂点に変わります。 頂点 が良い頂点となることはありません。