ZOJ 2868

来源:互联网 发布:知我天成卖假货 编辑:程序博客网 时间:2024/05/16 07:52

      2868 Incredible Cows,题目大意:n(2-34)个数,分成2组,使2组之和的差最小,输出最小值。

 

      刚开始想到dfs枚举所有情况,结果 TLE。不知咋整,过了几天去网上搜了下,没什么结果,但看到有人说是 dfs+2分。即将所有的数先分成2半,如前1半,后一半,然后分别 dfs 枚举出2小半分别能形成的差值,由于n小了一半,dfs耗时减少,然后去2分搜索,即找出总的n个数中的差值最小。对于前1半中的差值a,在后一半的差值中2分找与a最接近的b,则能形成a-b,或b-a。如果能找到a=b,即能达到0,则不用继续,最小肯定是0。这样时间可以,我的是90ms。

 

      但是有很郁闷的地方,AC之前有大把大把的SF,检查了程序看不出错误,最后n次提交缩小范围,找到一个有可能sf的地方,而会sf的唯一可能就是 n=1。但题目中说n>=2。。。。so,相信不是这个问题,但还是+了个判断,终于SF没了,变成WA。很无语的n次提交后,决定还是+上个判断,是否n=1。然后提交,AC了,我艹!!这么长时间的调试,原来被一个描述中不可能出现的情况秒杀了,shit

原创粉丝点击