AT_abc446_f.[ABC446F] Reachable Set 2

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个有向图 GG,包含 NN 个顶点和 MM 条边。顶点编号为 1,2,…,N1,2,\ldots,N,第 ii 条边(1≤i≤M1\leq i\leq M)从顶点 UiU_i 指向顶点 ViV_i。

需要你分别对 k=1,2,…,Nk=1,2,\ldots,N 依次解决以下问题:

高桥的目标是从 GG 中删去一些(可以为零个)顶点,并一并移除所有以这些顶点为端点的边,使得下述条件得到满足。

  • 从顶点 11 出发,通过若干条边(可为零条)可达的所有顶点,恰好为顶点 1,2,…,k1,2,\ldots,k。

判断他是否可以实现这一目标,如果可以,求最少需要删去多少个顶点才能实现。

输入格式

输入从标准输入读入,格式如下:

N M U1 V1 U2 V2 ⋮ UM VMN\ M\ U_1\ V_1\ U_2\ V_2\ \vdots\ U_M\ V_M

输出格式

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

输入输出样例

  • 输入#1

    5 5
    1 2
    2 4
    2 5
    4 3
    4 5

    输出#1

    1
    2
    -1
    1
    0
  • 输入#2

    5 5
    1 1
    1 2
    3 1
    3 1
    3 5

    输出#2

    1
    0
    -1
    -1
    -1

说明/提示

样例说明 1

  • 当 k=1k=1 时,可以通过删除顶点 22 实现目标。注意,顶点 3,4,53,4,5 即使不删除也已不可达。不能做到不删顶点,因此第 11 行输出 11。
  • 当 k=2k=2 时,可以通过删除顶点 44 和 55 实现目标。无法只删一个或更少顶点实现,因此第 22 行输出 22。
  • 当 k=3k=3 时,无论如何删除顶点都无法实现目标,因此第 33 行输出 −1-1。
  • 当 k=4k=4 时,可以通过删除顶点 55 实现目标,需要删去至少一个顶点,因此第 44 行输出 11。
  • 当 k=5k=5 时,无需删除任何顶点就可实现目标,因此第 55 行输出 00。

样例说明 2

GG 不一定连通,且可能含有重边或自环。

数据范围

  • 2≤N≤3×1052\leq N\leq 3\times 10^5
  • 1≤M≤3×1051\leq M\leq 3\times 10^5
  • 1≤Ui,Vi≤N1\leq U_i, V_i\leq N
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页