【二分】软件下载解题报告

3、软件下载

ICG大赛马上就要举行了,作为大赛的组委会兼参赛选手,信息组的成员们当然要做准备了,而其中十分重要的一项准备工作就是下载很多举办大赛必不可少的软件,已知现在机房有N台电脑,组委会列出了M个需要下载的软件及其大小Ai(即需要下载的时间),每个电脑同一时间只能下载一个软件,一个软件也只能由一个电脑下载,每个电脑下载速度相同且互不影响.因为有神器Cena的存在,每个软件只需由某一台电脑下载一次就能使整个机房的电脑普及该软件。现在ICG组委会想知道最快能在多长时间内下载完成。

输入格式

第1行:两个整数N、M,分别代表机房的电脑数及需要下载的软件数量。

第2行:M个整数,第i个整数表示Ai的值。

输出格式

一行一个整数,表示能下载完所有软件的最短时间。

输入样例:

2 3

1 2 3

输出样例

3

 

数据范围:

1<=n<=10

1<=m<=50

 

【考察点】

二分答案

【思路】

嗯,读完题我们可以发现,这个题目其实想表达的意思就是使各台电脑用时的最大值最小,欧教说:只要是最大值最小这种题目,几乎都可以用二分来做。那我们来二分嘛。

其实二分过程毫无亮点,难点以及亮点在于check模块……

考试的时候试图想NB的方法来搞,但是失败了,于是写了个搜索来check,添加了自认为NB的剪枝(实际上标程也是这样减得),不过还是彻底TLE了……

下来看了题解,发现程序有这样几个地方要优化:1、二分上下界,虽然效果不明显,但是再怎么说也是优化,而且下界设置不好似乎还会出问题;2、搜索到当前已经不可能成功的时候,减!这里就是个强力剪枝了,不减稳跪;3、搜索顺序优化,常规思路是从小到大搜,但是我们可以发现,假设现在有两个小的数和一个大的数,它们都是可行的,那么显然选择大的数更优,因为小的数也许还有其它地方刚好能用上,毕竟它比较小,这点优化也很重要!!有1、2,没3大概过4组的样子

【提交情况】

考试全部TLE,下来TLE了很多次之后终于AC

【经验及收货】

逆向搜索,很好的思想!很多搜索题喜欢卡正向搜,换个方向就是要NB些~

【吐槽】

有2没1、3全部TLE我就真心想不通了……这不科学!我明明想到了最关键的一步的……o(╯□╰)o

 

ACCode:

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113206 人正在系统学习中 来源:usesd_to_bes

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年9月12日
下一篇 2012年9月12日

相关推荐