最新网址:www.83zws.com
首页 > 都市言情 > 重生学神有系统 > 第257章 NOIP中最难的题型

第257章 NOIP中最难的题型(1/2)

目录
好书推荐: 持刀行走的少年 我的加点异能 山村无敌兵王 疯起来连自己都砍 美女校花的绝品战兵 我真不是精灵 全是我干的 一醉平生 万界收藏艺术馆 收藏大赢家

本届noip的压轴题,一如既往的难度爆表。

题目:疫控制。

【问题描述】:

有n个城市,用n-1条路互连,构成了一棵树。

1号城市是树中的根节点,现在,根节点上爆发了一种危害极高的传染病。

为了不让疫扩散到边境城市,也就是叶子节点,于是派出医疗队,在一些城市建立检查点。

目标:从1号城市到边境城市的每一条路径上,都至少要有一个检查点。

医疗队可以在有路互连的城市间移动,并在城市中建立检查点。

一支队伍只能在一个城市建立检查点,边境城市也可以建立检查点,但1号城市不能建立检查点。

医疗队移动所需时间,等于道路的长度,单位是小时。

一个城市可以驻扎多个医疗队,不同的医疗队可以同时移动。

现在,一些城市中已经驻扎有医疗队。

求解:最少需要多少个小时,才能控制住疫。

【输入数据】:

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

接下来的n-1行,每行3个整数:u、v、w,表示从城市u到城市v有一条长为w的道路。

数据保证输入的是一棵树,且根节点编号为1。

下一行,一个整数m,表示医疗队的个数。

再下一行,有m个整数,分别表示m个医疗队所驻扎的城市编号,其中任意m≠1。

【输出格式】:

只有一个整数,表示控制疫需要的最少时间,如果无法控制疫则输出-1。

题目后面,还给出了一些输入输出的样例和解释。

最后,是这道题的数据范围。

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

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

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

对于80%的数据,2≤;

对于100%的数据,2≤m≤,w大于0小于10^9。

这很可能是最近几年来最难的一道题,思考难度超大。

即使在noip历史上,也足可以排进难度榜三甲。

而且有个很恶心的条件,不能停留在根节点。

写代码的时候,一不小心就容易出错。

至于解题思路……

江寒全力开动脑筋,花了10分钟时间,才理顺了过来。

医疗队可以同时移动,说明需要的总时间,取决于移动距离最长的医疗队。

根据题意,需要最小化最大值。

不能用模拟的办法,容易超过时限。

江寒看懂题意后,第一个念头就是二分答案。

求最大化最小值,最小化最大值,一般都可用二分答案。

然后,可以在二分之后,使用贪心策略,将所有的医疗队尽可能上提。

但是,数据范围太大了,直接一个个“上提”,肯定会导致tle。

所以必须优化一下。

这种”往上提“的问题,一般可以用倍增法来优化。

具体到这道题里,可以用hfirstsearch,深度优先搜索)算法,将需要用到的数值预处理一下,然后再倍增。

在cāo)作时,要时刻注意,不能把医疗队提升到根节点上……

所以,这道题要想得高分,二分答案、贪心、倍增三种算法,缺一不可。

在历届noip提高组复赛中,这道题的难度都是数一数二的了。

但会者不难。

对江寒来说,只要有了思路,写代码并不存在任何问题。

他全力开动脑力,只用了30分钟,就写完了代码,并调试完毕。

虽然问题顺利解决掉了,不过……

江寒揉了揉有点发烫的脑门,忍不住叹了口气:“啧,早知道带条红极参过来就好了。”

noip比赛是许带饮食的。

虽然生吃海参、不蘸酱油,可能有点另类和惊世骇俗,可总比享受脑力透支的眩晕感好一些吧?

接下来还有将近1个小时,江寒也没浪费。

编写代码,生成大量测试数据,对自己要提交的代码,进行了高强度的测试。

测试结果非常不错,100%的测试数据,都能在时限之内完成。

随后,江寒仔细检查了一下各种细节,文件名、大小写、头文件引用、输出数据的格式……

全部弄利索,还差5分钟收卷。

江寒举手叫来监考教师,再次提前了一小会儿,上传了答卷。

至此,本届noip对他来说,就基本宣告结束了。

接下来,回家等着成绩公示即可。

83中文网最新地址www.83zws.com

本章未完,点击下一页继续阅读。

目录
新书推荐: 木叶:宇智波止水的军师联盟 棺棺有雎鸠 大明贪狼星 年代:重回悠闲小渔村 林场1985:养只熊崽好撵山 NBA:史上最强队医 绝世唐门之萧鼎镇天 赘婿临门:重生农女种田忙 四合院里的人生赢家 少阁主她到现代碾压众人
返回顶部