A3381 「POI 2023/2024 R3」Wyjścia ewakuacyjne

暂无评定 传统题 POI(波兰) 上传者
时间限制8000ms
内存限制512MiB
通过 / 提交0/0

A3381「POI 2023/2024 R3」Wyjścia ewakuacyjne

暂无评定 传统题 POI(波兰) 上传者
时间限制8000ms
内存限制512MiB
通过 / 提交0/0

题目描述

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

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

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

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

输入格式

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

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

接下来的 n−1n-1 行,每行包含三个整数 xj,yj,bjx_j, y_j, b_j (1≤xj<yj≤n,1≤bj≤1018)(1 \leq x_j < y_j \leq n, 1 \leq b_j \leq 10^{18}),表示第 jj 个走廊连接房间 xjx_j 和 yjy_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 的走廊。另一出口可设于房间 22 或 33,服务房间 1,2,3,4,7,8,91, 2, 3, 4, 7, 8, 9。注意,房间 1010 的 44 人须与房间 55 的 44 人同向疏散,此 88 人无法通过走廊至房间 44 或 66,故需在房间 55 或 1010 再设一出口,总计 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=\lceil j/2 \rceil, y_j=j+1),满足子任务 22。
  3. n=1000000n=1000000,大楼为以 11 为根的三叉树(xj=⌈j/3⌉,yj=j+1x_j=\lceil j/3 \rceil, y_j=j+1),ai=(i mod 17)+1,bj=(j mod 23)+1a_i=(i \bmod 17)+1, b_j=(j \bmod 23)+1。

数据范围与提示

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

子任务编号 附加限制 分值
11 走廊形成路径(xj=j,yj=j+1x_j=j, y_j=j+1 对于 1≤j≤n−11 \leq j \leq n-1) 1616
22 ai=1a_i=1(1≤i≤n1 \leq i \leq n)且 bj=1b_j=1(1≤j≤n−11 \leq j \leq n-1) 3232
33 无附加限制 5252