#Z1238. hybc-3-5-LJY与攻城游戏

    ID: 590 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>算法基础倍增差分数据结构树上点差分线段树

hybc-3-5-LJY与攻城游戏

题目描述:

摸鱼摸得无聊的时候,LJY 找到了一款游戏,游戏开始时会给你一个有 nn 座城市的地图,城市之间有 n1n-1 条道路使得所有城市连成一个树形结构。

这些城市中 11 号城市为首都,一座城市 ii 的地位 wiw_i 定义为 ii 到首都的简单路径上经过的城市数量。

LJY 观察了会儿地图,他发现每座城市 xx 有一个给定的 axa_x 表示它的能力值 ,而第 ii 条道路连接城市 uiu_iviv_i,长度为 lil_i

我们定义 dist(x,y)dist(x,y) 作为树上从 xxyy 的简单路径上的道路长度总和。

在游戏中,若城市 xx 与城市 yy 简单路径上的任意城市 kk,都满足 wkwxw_k\ge w_x,并且 dist(x,y)aydist(x,y)\leq \large a_y,我们称城市 xx 能控制城市 y (yx)y~(y\not=x)

现在 LJY 可以选择一座城市作为游戏初始城市。而为了游戏后期的顺利发展,LJY 想知道在每个节点 ii (1in1\le i\le n) 分别能控制几个节点。

输入格式:

第一行包含一个整数 nn,表示地图中的城市数量。

第二行有 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n ,表示节点 ii 的能力值。

之后的 n1n-1 行,每行有两个正整数。其中第 ii 行包含 ui,vi,liu_i,v_i,l_i,表示第 ii 条道路连接 ui,viu_i,v_i 两座城市,长度为 lil_i

输出格式:

输出一行共 nn 个整数,第 ii 个数表示城市 ii 能控制的城市数量。

5
2 5 1 4 6
1 2 7
3 1 1
4 3 5
3 5 6
1 0 1 0 0
5
9 7 8 6 5
1 2 1
2 3 1
3 4 1
4 5 1
4 3 2 1 0

数据范围

对于 100%100 \% 的测试数据,满足:

1n2×1051\le n \le 2\times10^5

1ax109 (1xn)1\le a_x \le 10^9~(1\le x \le n)

1ui,vin1\le u_i,v_i\le n1li109 (1in1)1\le l_i \le 10^9~(1\le i\le n-1)

数据范围 分值 特殊性质 依赖
subtask1 n5×103n\le 5\times10^3 20
subtask2 n2×105n\le 2\times10^5 30 每个城市最多连接两条道路
subtask3 n2×105n\le2\times 10^5 50 subtask1