题目描述
给你一棵 n 个点的无根树。
树上的每条边具有颜色。一共有 m 种颜色,编号为 1 到 m,第 i 种颜色的权值为 ci。
对于一条树上的简单路径,路径上经过的所有边按顺序组成一个颜色序列,序列可以划分成若干个相同颜色段。定义路径权值为颜色序列上每个同颜色段的颜色权值之和。
请你计算,经过边数在 l 到 r 之间的所有简单路径中,路径权值的最大值。
输入格式
第一行,四个整数 n,m,l,r。
第二行,m 个整数 c1,c2,…,cm,由空格隔开,依次表示每个颜色的权值。
接下来 n−1 行,每行三个整数 u,v,c,表示点 u 和点 v 之间有一条颜色为 c 的边。
输出格式
输出一行,一个整数,表示答案。
5 3 1 4
-1 -5 -2
1 2 1
1 3 1
2 4 2
2 5 3
-1
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
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 之间的路径。