luogu#P12205. [COI 2022] 通行证件 / Vinjete

[COI 2022] 通行证件 / Vinjete

题目背景

译自 HIO (COI) 2022 T4。

题目描述

Gospodin Malnar 计划在亚洲旅行,访问 NN 个城市。这些城市通过 N1N-1 条双向高速公路连接,形成一棵树。城市编号为 11NN,起点为 11

亚洲有 MM 种不同类型的通行证,编号从 11MM。每条高速公路 ii 需要购买编号在 [li,ri][l_i,r_i] 范围内的所有通行证才能通过,第 ii 条公路连接 ai,bia_i,b_i 两点。

你的任务是确定从起点到其他城市 ii (2iN)(2 \leq i \leq N) 所需购买的最少通行证数量。

输入格式

第一行包含两个整数 NNMM,表示城市数和通行证种类数。

接下来 N1N-1 行,每行包含四个整数 ai,bi,li,ria_i, b_i, l_i, r_i,表示一条高速公路及其所需通行证区间。

输出格式

输出 N1N-1 行,第 ii 行表示从城市 11 到城市 i+1i+1 所需的最少通行证数量。

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

提示

【样例解释】

样例 11

  • 到城市 22 的路径覆盖区间 [2,4][2,4],需 33 个通行证 (2,3,4)(2,3,4)
  • 到城市 33 的路径覆盖 [1,4][1,4],需 44 个。
  • 到城市 44 的路径合并 [2,4][2,4][3,5][3,5],结果为 [2,5][2,5],需 44(2,3,4,5)(2,3,4,5)
  • 到城市 55 的路径包含 [2,4][2,4][5,6][5,6],合并后需 55 个。
  • 到城市 66 的路径合并 [1,4][1,4][2,3][2,3],结果为 [1,4][1,4],需 44 个。

样例 22

  • 到城市 22 只需区间 [2,2][2,2]11 个通行证。
  • 到城市 33 合并 [2,2][2,2][3,3][3,3],共 22 个。
  • 到城市 44 需合并 [2,2][2,2], [3,3][3,3], [1,1][1,1],总覆盖 [1,3][1,3],需 33 个。
  • 到城市 55 的路径覆盖 [1,5][1,5],需 55 个。

【数据规模与约定】

对于所有数据,满足 1N1051 \leq N \leq 10^5,1M1091 \leq M \leq 10^9,1ai,biN1 \leq a_i, b_i \leq N, 1liriM1 \leq l_i \leq r_i \leq M,且道路构成一棵树。

子任务编号 分值 附加限制
11 1111 N103N \leq 10^3, M103M \leq 10^3
22 1313 N103N \leq 10^3, M109M \leq 10^9
33 1616 N5×104N \leq 5 \times 10^4, M5×104M \leq 5 \times 10^4
44 2929 N105N \leq 10^5, M105M \leq 10^5
55 3131 N105N \leq 10^5, M109M \leq 10^9