题目名称 1267. [NOIP 2012]疫情控制
输入输出 blockade.in/out
难度等级 ★★★☆
时间限制 2000 ms (2 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatar王者自由 于2012-11-11加入
开放分组 全部用户
提交状态
分类标签
NOIP/CSP 贪心 倍增法
分享题解
通过:132, 提交:498, 通过率:26.51%
Gravatar_Itachi 100 0.055 s 3.73 MiB C++
GravatarRyzen 100 0.098 s 14.91 MiB C++
GravatarAsm.Def 100 0.154 s 2.22 MiB C++
GravatarAsm.Def 100 0.171 s 2.41 MiB C++
GravatarTimelyRain 100 0.258 s 10.97 MiB C++
GravatarCSU_Turkey 100 0.292 s 14.24 MiB C++
Gravatardigital-T 100 0.294 s 7.18 MiB C++
Gravatar哩哩∮one 100 0.294 s 19.05 MiB Pascal
Gravatarwumingshi 100 0.296 s 8.56 MiB C++
Gravatar嘟皮 100 0.298 s 19.05 MiB Pascal
本题关联比赛
NOIP 2012 Day2
NOIP 2012 Day2
EYOI常规赛 7th
EYOI常规赛 7th
EYOI常规赛8th
关于 疫情控制 的近10条评论(全部评论)
Gravatarxzz_666
2018-09-21 15:41 25楼
用两个堆将覆盖自己子树与覆盖别的子树的情况分开枚举是80分
排完序不分情况枚举AC
我也很绝望啊qwq
GravatarHzoi_Mafia
2017-11-06 15:26 24楼
貌似很少人用树剖
GravatarAAAAAAAAAA
2017-10-30 17:35 23楼
细节的处理是食人的妖魔
GravatarShirry
2017-10-27 10:23 22楼
不加点注释不舒服
GravatarCSU_Turkey
2017-10-08 19:29 21楼
终于a了qwq
之前有一个特别大的错误
竟然还过了9个点
GravatarCSU_Turkey
2017-10-08 19:18 20楼
回复 @mikumikumi :
总算知道为什么WA了。。。
Gravatar徐戍
2017-08-14 22:32 19楼
回复 @紅蓮之心熾熱_血瞳洞穿無盡陰暗 :
为啥我用倍增,开O2,写register都f**k不过去呢?
GravatarTenderRun
2016-11-08 20:37 18楼
这题让我心碎
GravatarRapiz
2016-11-02 22:25 17楼
又用倍增写了一遍,果然最后一个点不T了。
Gravatar_Itachi
2016-10-23 08:17 16楼

1267. [NOIP 2012]疫情控制

★★★☆   输入文件:blockade.in   输出文件:blockade.out   简单对比
时间限制:2 s   内存限制:128 MiB

【题目描述】

H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树, 1 号城市是首都, 也是树中的根节点。 

H 国的首都爆发了一种危害性极高的传染病。当局为了控制疫情,不让疫情扩散到边境 城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境 城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点。但特别要注意的是, 首都是不能建立检查点的。 

现在,在 H 国的一些城市中已经驻扎有军队,且一个城市可以驻扎多个军队。一支军队可以在有道路连接的城市间移动,并在除首都以外的任意一个城市建立检查点,且只能在 一个城市建立检查点。一支军队经过一条道路从一个城市移动到另一个城市所需要的时间等 于道路的长度(单位:小时)。 

请问最少需要多少个小时才能控制疫情。注意:不同的军队可以同时移动。

【输入格式】

第一行一个整数 n,表示城市个数。 

接下来的 n-1 行,每行 3 个整数,u、v、w,每两个整数之间用一个空格隔开,表示从 城市 u 到城市 v 有一条长为 w 的道路。数据保证输入的是一棵树,且根节点编号为 1。 

接下来一行一个整数 m,表示军队个数。 

接下来一行 m 个整数,每两个整数之间用一个空格隔开,分别表示这 m 个军队所驻扎 的城市的编号。

【输出格式】

共一行,包含一个整数,表示控制疫情所需要的最少时间。如果无法控制疫情则输出-1。

【样例输入】

4 
1 2 1 
1 3 2 
3 4 3 
2 
2 2 

【样例输出】

3

【输入输出样例说明】

第一支军队在 2 号点设立检查点,第二支军队从 2 号点移动到 3 号点设立检查点,所需 时间为 3 个小时。

【数据范围】

保证军队不会驻扎在首都。 

对于 20%的数据,2≤ n≤ 10; 

对于 40%的数据,2 ≤n≤50,0<w <10^5; 

对于 60%的数据,2 ≤ n≤1000,0<w <10^6; 

对于 80%的数据,2 ≤ n≤10,000; 

对于 100%的数据,2≤m≤n≤50,000,0<w <10^9