#3605. Good Vertices

0

Good Vertices

Good Vertices

题目描述

我们有一个有向图,包含 NN 个顶点。 这 NN 个顶点被称为 顶点 11、顶点 22、…\ldots、顶点 NN。 在时间 00 时,图中没有边。 对于每个 t=1,2,…,Tt = 1, 2, \ldots, T,在时间 tt,会添加一条从顶点 utu_t 指向顶点 vtv_t 的有向边。 (该边可能是自环,也就是可能有 ut=vtu_t = v_t.) 当且仅当可以从顶点 11 出发,通过恰好 LL 次遍历边到达某顶点时,该顶点被称为 良好。 对于每个 i=1,2,…,Ni = 1, 2, \ldots, N,输出顶点 ii 第一次成为良好的最早时间。如果顶点 ii 从未成为良好,输出 −1-1。

输入格式

输入从标准输入按以下格式给出: NN TT LL u1u_1 v1v_1 u2u_2 v2v_2 ⋮\vdots uTu_T vTv_T

输出格式

按以下格式,对于每个 i=1,2,…,Ni = 1, 2, \ldots, N,输出顶点 ii 第一次成为良好的最早时间 XiX_i。如果顶点 ii 从未成为良好,则 XiX_i 应为 −1-1。 X1X_1 X2X_2 …\ldots XNX_N

4 5 3
2 3
3 4
1 2
3 2
2 2
-1 4 5 3
2 1 1000000000
1 2
-1 -1

提示

2≤N≤1002 \leq N \leq 100 1≤T≤N21 \leq T \leq N^2 1≤L≤1091 \leq L \leq 10^9 1≤ut,vt≤N1 \leq u_t, v_t \leq N i≠j⇒(ui,vi)≠(uj,vj)i \neq j \Rightarrow (u_i, v_i) \neq (u_j, v_j) 输入中的所有数值均为整数。在时间 00 时,图中没有边。之后,边按如下顺序被添加。

在时间 11,添加一条从顶点 22 到顶点 33 的有向边。 在时间 22,添加一条从顶点 33 到顶点 44 的有向边。 在时间 33,添加一条从顶点 11 到顶点 22 的有向边。现在,可以通过恰好三步从顶点 11 到达顶点 44:1→2→3→41 \rightarrow 2 \rightarrow 3 \rightarrow 4,因此顶点 44 变为良好。 在时间 44,添加一条从顶点 33 到顶点 22 的有向边。现在,可以通过恰好三步从顶点 11 到达顶点 22:1→2→3→21 \rightarrow 2 \rightarrow 3 \rightarrow 2,因此顶点 22 变为良好。 在时间 55,添加一条(自环)从顶点 22 到顶点 22 的有向边。现在,可以通过恰好三步从顶点 11 到达顶点 33:1→2→2→31 \rightarrow 2 \rightarrow 2 \rightarrow 3,因此顶点 33 变为良好。

顶点 11 将永远不会成为良好。

标签: AtCoder|abc236G

来源

AtCoder|abc236G