AT_abc446_f [ABC446F] Reachable Set 2

题目描述

给定一个有向图 $G$,包含 $N$ 个顶点和 $M$ 条边。顶点编号为 $1,2,\ldots,N$,第 $i$ 条边($1\leq i\leq M$)从顶点 $U_i$ 指向顶点 $V_i$。 需要你分别对 $k=1,2,\ldots,N$ 依次解决以下问题: > 高桥的目标是从 $G$ 中删去一些(可以为零个)顶点,并一并移除所有以这些顶点为端点的边,使得下述条件得到满足。 > > - 从顶点 $1$ 出发,通过若干条边(可为零条)可达的所有顶点,恰好为顶点 $1,2,\ldots,k$。 > > 判断他是否可以实现这一目标,如果可以,求最少需要删去多少个顶点才能实现。

输入格式

输入从标准输入读入,格式如下: > $N\ M\ U_1\ V_1\ U_2\ V_2\ \vdots\ U_M\ V_M$

输出格式

输出 $N$ 行。 第 $i$ 行($1\leq i\leq N$)输出针对 $k=i$ 时问题的答案。如果高桥无法实现目标,输出 $-1$;否则输出实现目标所需删去的最小顶点数。

说明/提示

### 样例说明 1 - 当 $k=1$ 时,可以通过删除顶点 $2$ 实现目标。注意,顶点 $3,4,5$ 即使不删除也已不可达。不能做到不删顶点,因此第 $1$ 行输出 $1$。 - 当 $k=2$ 时,可以通过删除顶点 $4$ 和 $5$ 实现目标。无法只删一个或更少顶点实现,因此第 $2$ 行输出 $2$。 - 当 $k=3$ 时,无论如何删除顶点都无法实现目标,因此第 $3$ 行输出 $-1$。 - 当 $k=4$ 时,可以通过删除顶点 $5$ 实现目标,需要删去至少一个顶点,因此第 $4$ 行输出 $1$。 - 当 $k=5$ 时,无需删除任何顶点就可实现目标,因此第 $5$ 行输出 $0$。 ### 样例说明 2 $G$ 不一定连通,且可能含有重边或自环。 ### 数据范围 - $2\leq N\leq 3\times 10^5$ - $1\leq M\leq 3\times 10^5$ - $1\leq U_i, V_i\leq N$ - 所有输入均为整数。 由 ChatGPT 5 翻译