#CF868E. 警察与树
警察与树
警察与树
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定一棵树(一种连通无向无环图),顶点编号从 到 ,第 条边的长度为 。在顶点 处有一名警察,在顶点 ()处有 名罪犯。
警察可以以速度 沿边行走,罪犯可以以任意大的速度移动。如果某一时刻罪犯与警察处于同一位置,罪犯会立即被警察逮捕。假设所有人都采取最优策略行事(即罪犯尽量拖延被捕时间,警察尽量缩短逮捕时间),请你求出警察抓捕全部罪犯所需的时间。所有人随时都知道彼此的位置。
输入格式
第一行包含一个整数 (),表示树的顶点数量。接下来 行,每行包含三个整数 (,),表示存在一条长度为 的无向边连接 和 。保证给定的图是一棵树。
接下来一行包含一个整数 (),表示警察的起始顶点编号。
接下来一行包含一个整数 (),表示罪犯的数量。下一行包含 个整数 (, ),表示罪犯的起始顶点编号。 不一定各不相同。
输出格式
如果警察无法抓住所有罪犯,输出一行 "Terrorists win"(不带引号)。
否则,输出一个整数,表示警察抓住所有罪犯所需的最短时间。
样例输入 1
4
1 2 2
1 3 1
1 4 1
2
4
3 1 4 1
样例输出 1
8
样例输入 2
6
1 2 3
2 3 5
3 4 1
3 5 4
2 6 3
2
3
1 3 5
样例输出 2
21
提示
在第一个样例中,一种最优的策略如下:第 号罪犯移动到顶点 ,第 号罪犯移动到顶点 。警察前往顶点 ,并同时抓住两名罪犯。之后,第 号罪犯移动到顶点 。警察前往顶点 抓住第 号罪犯,然后再前往顶点 抓住剩下的罪犯。
数据范围
对所有数据:,,,且 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | , |
| 2 | 40 | |
| 3 | 无特殊限制 |
各子任务数据彼此独立计分。