#P14799. [JOI 2026 二次预选] 比太郎之旅 3 / Bitaro's Travel 3

    ID: 16627 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2025图论建模图遍历连通块JOI(日本)

[JOI 2026 二次预选] 比太郎之旅 3 / Bitaro's Travel 3

题目描述

JOI 国由 NN 个城市和连接它们的 MM 条道路构成。城市被编号为 11NN,道路被编号为 11MM。道路 i (1iM)i \ (1 \le i \le M) 双向连接城市 AiA_i 和城市 BiB_i。这里,Ai<BiA_i < B_i。此外,对于任意两个城市的配对,连接它们的道路最多只有 11 条。也就是说,AiAjA_i \ne A_jBiBj (1i<jM)B_i \ne B_j \ (1 \le i < j \le M)

比太郎现在在城市 ss,正在制定旅行计划。旅行计划用数列 v=(v1,v2,)v = (v_1, v_2, \dots) 表示,它表示比太郎将访问的城市编号的顺序。这里,vv 是由 11 以上 NN 以下的整数组成的、长度至少为 11 的数列。由于比太郎对旅行中访问城市编号的顺序有很强的执念,数列 vv 在其长度为 ll 时,必须满足以下所有条件。

  1. v1=sv_1 = s
  2. 对于各个 j=1,2,,l1j = 1, 2, \dots, l - 1,城市 vjv_j 与城市 vj+1v_{j+1} 由道路连接。
  3. 对于各个 j=1,2,,l1j = 1, 2, \dots, l - 1,当 jj 为奇数时有 vj<vj+1v_j < v_{j+1} 成立,当 jj 为偶数时有 vj>vj+1v_j > v_{j+1} 成立。

例如,v=(2)v = (2)v=(1,4,1,5,3)v = (1, 4, 1, 5, 3) 满足第 33 个条件,但 v=(3,2)v = (3, 2) 不满足第 33 个条件。

比太郎想知道:无论制定怎样的旅行计划都无法到达的城市,即在满足上述所有条件的任意数列 vv 中都不会出现其编号的城市,总共有多少个。

由于你不知道比太郎当前在什么城市,因此希望对 s=1,2,,Ns = 1, 2, \dots, N 各自,计算比太郎问题的答案。

给定关于 JOI 国的城市与道路的信息,请编写程序,对 s=1,2,,Ns = 1, 2, \dots, N 各自,求出无论比太郎制定怎样的旅行计划都无法到达的城市个数。

输入格式

输入按以下格式给出。

N  MN \ \ M
A1  B1A_1 \ \ B_1
A2  B2A_2 \ \ B_2
\vdots
AM  BMA_M \ \ B_M

输出格式

输出 NN 行。第 k (1kN)k \ (1 \le k \le N) 行输出当 s=ks = k 时,无论比太郎制定怎样的旅行计划都无法到达的城市个数。

4 4
1 2
1 3
1 4
3 4
0
3
0
3
2 0
1
1
4 3
1 3
3 4
2 4
2
1
1
3
6 6
1 4
1 3
2 4
2 5
3 6
5 6
1
1
3
5
3
5

提示

样例解释

样例 11 解释

s=1s = 1 时,作为 vv 可能的数列有 v=(1)v = (1)v=(1,2)v = (1, 2)v=(1,3)v = (1, 3)v=(1,4,1)v = (1, 4, 1)v=(1,4,1,2)v = (1, 4, 1, 2) 等。不存在无论制定怎样的旅行计划都无法到达的城市。

s=2s = 2 时,作为 vv 可能的数列只有 v=(2)v = (2)。无论制定怎样的旅行计划,都无法到达城市 1,3,41, 3, 4

s=3s = 3 时,作为 vv 可能的数列有 v=(3)v = (3)v=(3,4,1,2)v = (3, 4, 1, 2) 等。不存在无论制定怎样的旅行计划都无法到达的城市。

s=4s = 4 时,作为 vv 可能的数列只有 v=(4)v = (4)。无论制定怎样的旅行计划,都无法到达城市 1,2,31, 2, 3

该输入示例满足子任务 2,52, 5 的约束。

样例 22 解释

s=1s = 1 时,作为 vv 可能的数列只有 v=(1)v = (1)。无论制定怎样的旅行计划,都无法到达城市 22

s=2s = 2 时,作为 vv 可能的数列只有 v=(2)v = (2)。无论制定怎样的旅行计划,都无法到达城市 11

该输入示例满足子任务 2,4,52, 4, 5 的约束。

样例 33 解释

该输入示例满足所有子任务的约束。

样例 44 解释

该输入示例满足子任务 2,4,52, 4, 5 的约束。

约束

  • 1N3000001 \le N \le 300\,000
  • 0M3000000 \le M \le 300\,000
  • 1Ai<BiN (1iM)1 \le A_i < B_i \le N \ (1 \le i \le M)
  • AiAjA_i \ne A_jBiBj (1i<jM)B_i \ne B_j \ (1 \le i < j \le M)
  • 输入的值全部为整数。

子任务

  • (12 分)N1000N \le 1000M=N1M = N - 1。另外,存在一个将 (1,2,,N)(1, 2, \dots, N) 重新排列得到的某个排列 P=(P1,P2,,PN)P = (P_1, P_2, \dots, P_N),并且对各个 i=1,2,,N1i = 1, 2, \dots, N - 1,存在一条连接 PiP_iPi+1P_{i+1} 的道路。
  • (19 分)N1000N \le 1000M1000M \le 1000
  • (15 分)M=N1M = N - 1。另外,存在一个将 (1,2,,N)(1, 2, \dots, N) 重新排列得到的某个排列 P=(P1,P2,,PN)P = (P_1, P_2, \dots, P_N),并且对各个 i=1,2,,N1i = 1, 2, \dots, N - 1,存在一条连接 PiP_iPi+1P_{i+1} 的道路。
  • (17 分)对每个城市,与该城市直接由道路连接的城市最多为 22 个。
  • (37 分)没有额外约束。