#CF671D. 修复 Yusland 的道路
修复 Yusland 的道路
修复 Yusland 的道路
- 时间限制:5 秒
- 内存限制:256 MiB
题目描述
Yusland 有 个交叉口,由 条双向道路连接,任意两个交叉口之间都可互相到达。以交叉口 为根,这些道路构成一棵有根树。
镇上有 名道路修理工。第 名工人位于交叉口 ,收费 ,能够修复从 到交叉口 的简单路径上的全部道路。保证 是 的祖先。允许 ,此时该工人不修复任何道路。
请选择若干工人,使树上的每条道路都至少被修复一次,并最小化总费用。道路可以被重复修复。如果无法修复全部道路,输出 。
输入格式
第一行包含两个整数 。
接下来 行,每行两个整数 ,表示一条连接交叉口 的道路。
最后 行,每行三个整数 ,描述一名工人。
输出格式
若无法修复所有道路,输出 ;否则输出所需的最小总费用。
样例输入 1
6 5
1 2
1 3
3 4
4 5
4 6
2 1 2
3 1 4
4 1 3
5 3 1
6 3 2
样例输出 1
8
数据范围
对于所有数据,,,。输入道路构成一棵树,且 是 的祖先。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | |
| 2 | 40 | 输入的树是一条链 |
| 3 | 无特殊限制 |