AT_abc236_g [ABC236G] Good Vertices

题目描述

有一个包含 $N$ 个顶点的有向图。这 $N$ 个顶点分别被称为顶点 $1$、顶点 $2$、$\ldots$、顶点 $N$。在时刻 $0$,该图中没有任何边。 对于 $t = 1, 2, \ldots, T$,在时刻 $t$,会从顶点 $u_t$ 向顶点 $v_t$ 添加一条有向边。(如果添加的边是自环,即 $u_t = v_t$,也是允许的。) 从顶点 $1$ 出发,**恰好**重复 $L$ 次“从当前所在的顶点出发,选择一条有向边,沿着这条边移动到一个新的顶点”的操作,能够到达的顶点被称为“好顶点”。 请对于 $i = 1, 2, \ldots, N$,输出顶点 $i$ 首次成为好顶点的最小时刻。如果不存在这样的时刻,则输出 $-1$。

输入格式

输入以如下格式从标准输入读入。 > $N$ $T$ $L$ > $u_1$ $v_1$ > $u_2$ $v_2$ > $\vdots$ > $u_T$ $v_T$

输出格式

请按照如下格式输出,对于 $i = 1, 2, \ldots, N$,输出顶点 $i$ 首次成为好顶点的最小时刻 $X_i$。如果不存在这样的时刻,则 $X_i = -1$。 > $X_1$ $X_2$ $\ldots$ $X_N$

说明/提示

### 限制条件 - $2 \leq N \leq 100$ - $1 \leq T \leq N^2$ - $1 \leq L \leq 10^9$ - $1 \leq u_t, v_t \leq N$ - $i \neq j \Rightarrow (u_i, v_i) \neq (u_j, v_j)$ - 输入均为整数 ### 样例说明 1 在时刻 $0$,图中没有任何边。之后,按照如下顺序添加边: - 时刻 $1$,从顶点 $2$ 向顶点 $3$ 添加有向边。 - 时刻 $2$,从顶点 $3$ 向顶点 $4$ 添加有向边。 - 时刻 $3$,从顶点 $1$ 向顶点 $2$ 添加有向边。此时,可以通过 $1 \rightarrow 2 \rightarrow 3 \rightarrow 4$,恰好经过 $3$ 次移动到达顶点 $4$,因此顶点 $4$ 成为好顶点。 - 时刻 $4$,从顶点 $3$ 向顶点 $2$ 添加有向边。此时,可以通过 $1 \rightarrow 2 \rightarrow 3 \rightarrow 2$,恰好经过 $3$ 次移动到达顶点 $2$,因此顶点 $2$ 成为好顶点。 - 时刻 $5$,从顶点 $2$ 向顶点 $2$ 添加有向边(自环)。此时,可以通过 $1 \rightarrow 2 \rightarrow 2 \rightarrow 3$,恰好经过 $3$ 次移动到达顶点 $3$,因此顶点 $3$ 成为好顶点。 顶点 $1$ 永远不会成为好顶点。 由 ChatGPT 4.1 翻译