「SWTR-4」Collecting Coins
题目背景
小 A 喜欢 Collecting Coins。他还有个好朋友叫做小 c。
小 c 在外出游玩的时候被困在了一个迷宫里面,小 A 得知消息后,立刻放下了自己手中正在打的树套树套树套树,出发去营救她。
题目描述
经过一番勘察,小 A 发现小 c 被困的迷宫由 $n$ 个房间组成,这些房间用 $n-1$ 扇门连接,**形成了一颗树**。小 c 被困在 $d$ 号房间。
小 A 还发现每扇门上都写有一个数字 $v$,经过该扇门就会获得 $v$ 个金币,但每扇门上的金币只能获得一次。
由于把小 c 困在迷宫里的坏人早已知道小 A 会来救她,所以他们在每个房间里都布下了陷阱,使得第 $i$ 个房间最多可以进入 $k_i$ 次,否则小 A 也会被困在迷宫里。Luckily,小 c 在向小 A 求救的时候,已经将这个陷阱告诉了他。
小 A 在进入迷宫的时候可以任选初始房间 $r$(进入迷宫算一次进入房间 $r$)。**小 A 可以离开迷宫,当且仅当他在房间 $r$。**
如果小 A 进入了 $d$ 号房间,我们就认为他成功地救下了小 c。在救下小 c 后,小 A 还可以带着她继续在迷宫中行动。
虽然小 A 并不是一个非常贪财的人,但还是想知道:在**成功救下小 c** 且离开迷宫的前提下,他最多能获得多少金币。
输入输出格式
输入格式
第一行,两个整数 $n,d$ —— 表示房间个数和小 c 被困的房间号。
接下来 $n-1$ 行,每行三个整数 $x_i,y_i,v_i$ —— 分别表示第 $i$ 扇门连接的两个房间编号和这扇门上写的数。
接下来一行,$n$ 个整数 $k_1,k_2,\cdots,k_n$ —— 表示每个房间最多可进入的次数。
输出格式
一行一个整数,表示小 A 能获得的金币数量的最大值。
输入输出样例
输入样例 #1
6 4
1 2 3
2 3 4
2 4 5
3 5 2
3 6 3
1 2 1 1 2 2
输出样例 #1
5
输入样例 #2
6 4
1 2 3
2 3 4
2 4 5
3 5 2
3 6 3
1 1 1 1 1 1
输出样例 #2
0
输入样例 #3
6 4
1 2 3
2 3 4
2 4 5
3 5 2
3 6 3
2 2 2 2 2 2
输出样例 #3
12
输入样例 #4
12 6
1 4 33
2 11 51
3 9 100
4 8 7
5 9 35
6 12 30
7 11 58
8 10 65
9 10 59
10 12 9
11 12 72
2 2 2 3 2 1 2 1 2 3 2 2
输出样例 #4
263
说明
【样例 $1$ 说明】
![](https://cdn.luogu.com.cn/upload/image_hosting/zwtjgksh.png)
一种最优的走法为:$2\to 4\to 2$,共可获得 $5$ 金币。
【样例 $2$ 说明】
如上图,小 A 只能空降到 $4$ 号房间,然后再离开迷宫,共可获得 $0$ 金币。
【样例 $4$ 说明】
![](https://cdn.luogu.com.cn/upload/image_hosting/fmd43hzq.png)
一种最优的走法为:$3\to 9\to 10\to 8\to 10\to 12\to 6\to 12\to 10\to 9\to 3$,共可获得 $100+59+65+9+30=263$ 金币。
【数据范围与约定】
**本题使用捆绑测试。**
Subtask 编号 | $n\leq$ | 特殊性质 | 分值 |
:-: | :-: | :-: | :-: |
$1$ | $12$ | $k_i=1$ | $3$ |
$2$ | $12$ | $k_i\leq 3$ | $12$ |
$3$ | $10^3$ | 迷宫为一条链 | $9$ |
$4$ | $10^3$ | 无 | $16$ |
$5$ | $10^5$ | 迷宫为一条链 | $9$ |
$6$ | $10^5$ | 迷宫为一个菊花图 | $16$ |
$7$ | $10^5$ | 无 | $35$ |
对于 $100\%$ 的数据,$1\leq d,k_i\leq n\leq 10^5$,$1\leq v_i\leq 10^4$。
【Source】
[Sweet Round 04](https://www.luogu.com.cn/contest/26414)$\ \ $E
idea & std:[Alex_Wei](https://www.luogu.com.cn/user/123294),验题:[chenxia25](https://www.luogu.com.cn/user/138400)