[BJOI2017] 树的难题
题目描述
给你一棵 n 个点的无根树。
树上的每条边具有颜色。一共有 m 种颜色,编号为 1 到 m,第 i 种颜色的权值为 ci。
对于一条树上的简单路径,路径上经过的所有边按顺序组成一个颜色序列,序列可以划分成若干个相同颜色段。定义路径权值为颜色序列上每个同颜色段的颜色权值之和。
请你计算,经过边数在 l 到 r 之间的所有简单路径中,路径权值的最大值。
输入格式
第一行,四个整数 n,m,l,r。
第二行,m 个整数 c1,c2,…,cm,由空格隔开,依次表示每个颜色的权值。
接下来 n−1 行,每行三个整数 u,v,c,表示点 u 和点 v 之间有一条颜色为 c 的边。
输出格式
输出一行,一个整数,表示答案。
样例 #1
样例输入 #1
5 3 1 4
-1 -5 -2
1 2 1
1 3 1
2 4 2
2 5 3
样例输出 #1
-1
样例 #2
样例输入 #2
8 4 3 4
-7 9 6 1
1 2 1
1 3 2
1 4 1
2 5 1
5 6 2
3 7 1
3 8 3
样例输出 #2
11
提示
样例解释 1
颜色权值均为负,最优路径为 (1,2) 或 (1,3)。
样例解释 2
最优路径为 (3,1,2,5,6),其颜色序列为 (2,1,1,2)。
数据范围
| 测试点编号 | 
n | 
m | 
特殊限制 | 
| 1 | 
=103 | 
≤n | 
无特殊限制 | 
| 2 | 
=104 | 
=2 | 
| 3 | 
=105 | 
≤n | 
所有点的度数不超过 2 | 
| 4 | 
=2×105 | 
| 5 | 
=105 | 
=10 | 
l=1,r=n−1 | 
| 6 | 
=2×105 | 
≤n | 
| 7 | 
=105 | 
=50 | 
无特殊限制 | 
| 8 | 
≤n | 
| 9 | 
=2×105 | 
=100 | 
| 10 | 
≤n | 
对于 100% 的数据,1≤n,m≤2×105,1≤l≤r≤n,∣ci∣≤104。保证树上至少存在一条经过边数在 l 到 r 之间的路径。