#L5002. 「POI 2023/2024 R3」Wyjścia ewakuacyjne

    ID: 3230 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>动态规划树形DP贪心树结构图结构深度优先搜索最优化

「POI 2023/2024 R3」Wyjścia ewakuacyjne

「POI 2023/2024 R3」Wyjścia ewakuacyjne

题目译自 XXXI Olimpiada Informatyczna - III etap Wyjścia ewakuacyjne

题目描述

BajtoCorp 公司正搬入新建大楼。大楼包含 nn 个房间(编号 11nn)和 n1n-1 个连接房间的走廊(编号 11n1n-1)。任意两房间间有唯一路径(不回头)。第 ii 个房间初始有 aia_i 人,第 jj 个走廊最大通行 bjb_j 人。

部分房间需设置紧急出口,其余房间需放置一个绿色箭头,指向相邻房间,指引疏散路径。箭头需确保沿其方向可达到出口。疏散时,房间内初始人员或进入人员均沿箭头方向移动。需规划路径,使第 jj 个走廊的总通行人数不超过 bjb_j(考虑最坏情况)。房间通行人数无限制。

你的任务是计算所需紧急出口的最小数量。

输入格式

第一行包含一个整数 nn (2n10000002 \leq n \leq 1000000),表示房间数。

第二行包含 nn 个整数 aia_i (1ai10121 \leq a_i \leq 10^{12}),表示第 ii 个房间的初始人数。

接下来的 n1n-1 行,每行包含三个整数 xj,yj,bjx_j, y_j, b_j (1xj<yjn,1bj10181 \leq x_j < y_j \leq n, 1 \leq b_j \leq 10^{18}),表示第 jj 个走廊连接房间 xjx_jyjy_j,最大通行 bjb_j 人。

输出格式

输出一个整数,表示大楼所需紧急出口的最小数量。

样例

输入

10
20 30 64 10 4 80 20 5 10 4
1 2 80
2 3 90
3 4 60
4 5 4
5 6 4
2 7 80
3 8 10
4 9 20
5 10 4

输出

3

解释

房间 66 必须设出口,因其 8080 人无法通过容量仅 44 的走廊。另一出口可设于房间 2233,服务房间 1,2,3,4,7,8,91, 2, 3, 4, 7, 8, 9。注意,房间 101044 人须与房间 5544 人同向疏散,此 88 人无法通过走廊至房间 4466,故需在房间 551010 再设一出口,总计 33 个。

附加样例

  1. $n = 10, a_i = i \cdot 10^{10}, b_j = (10 - j) \cdot 10^{10}$,满足子任务 11
  2. n=1023n = 1023,大楼为以 11 为根的满二叉树(xj=j/2,yj=j+1x_j = \lfloor j/2 \rfloor, y_j = j + 1),满足子任务 22
  3. n=1000000n = 1000000,大楼为以 11 为根的三叉树(xj=j/3,yj=j+1x_j = \lfloor j/3 \rfloor, y_j = j + 1),ai=(imod17)+1,bj=(jmod23)+1a_i = (i \bmod 17) + 1, b_j = (j \bmod 23) + 1

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
1 走廊形成路径(xj=j,yj=j+1x_j = j, y_j = j + 1 对于 1jn11 \leq j \leq n - 1 16
2 ai=1a_i = 1 (1in1 \leq i \leq n) 且 bj=1b_j = 1 (1jn11 \leq j \leq n - 1) 32
3 无附加限制 52