列表

详情


NC53242. 道路建设

描述

译自 JOISC 2018 Day1 T1「高速道路の建設 / Construction of Highway
JOI王国里有N座城市,从1到N编号。1号城市是首都。每个城市都有一个叫作「活跃度」的权值,第座城市的活跃度初始值是
JOI王国里的每条道路双向连接两个不同的城市。开始时JOI王国里没有道路。你规划了N-1个道路建设项目。第个项目会按以下方式完成:
  1. 指定两座城市,要求能沿着此时已经建设的道路从城市1走到城市,且不能从城市1走到城市
  2. 建设一条连接城市的道路。建设过程的费用等于满足以下条件的城市对(s,t)的个数:
  • s和t在从城市1到城市的最短路径上;
  • 当一个人从城市1走到时,他会在经过t之前经过s;
  • s的活跃度严格大于t的活跃度。
在这里,「从城市1到城市的最短路径上的城市」包括1和。注意从城市1到城市的最短路径是唯一的。
  1. 将从城市1到城市的最短路径上的所有城市的活跃度改变为城市的活跃度。
你想知道每一次建设的费用。
任务
给出城市和道路建设的数据,请编程求出每一次建设的费用。

输入描述

输入数据的第一行包含一个整数N,表示JOI王国有N座城市。
第二行包含N个以空格分开的整数,表示第座城市的初始活跃度是
接下来N-1行中的第j行包含两个以空格分开的整数,表示第j次道路建设所指定的两个端点编号分别为

输出描述

输出到标准输出,共N-1行,第行包含一个整数表示第j次道路建设的费用。

示例1

输入:

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

输出:

0
0
0
2

说明:

在输入样例1中,道路建设按照以下方式执行:
在第一次建设中,没有满足条件的城市对(s,t),所以费用为0。建设一条连接城市1和2的道路之后,城市1的活跃度变为2。
在第二次建设中,也没有满足条件的城市对(s,t),所以费用为0。建设一条连接城市2和3的道路之后,城市1和2的活跃度变为3。
在第三次建设中,仍然没有满足条件的城市对(s,t),所以费用为0。建设一条连接城市2和4的道路之后,城市1和2的活跃度变为4。
在第四次建设中,有两对满足条件的城市:(s,t)=(1,3),(2,3),所以费用为2。建设一条连接城市3和5的道路之后,城市1,2和3的活跃度变为5。

示例2

输入:

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

输出:

0
0
0
1
1
0
1
2
3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题