标题:[求助]石子归并问题
只看楼主
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
 问题点数:0 回复次数:30 
[求助]石子归并问题

Problem 有一堆石头质量分别为W1,W2,W3...WN.(W<=100000)现在需要将石头合并为两堆,使两堆质量的差为最小。

Input 测试数据第一行为整数N(1<=N<=20),表示有N堆石子。接下去N行,为每堆石子的质量。

Output 合并后两堆的质量差的最小值。

Sample Input 5 5 8 13 27 14

Sample Output 3 大家帮忙想想这道题

搜索更多相关主题的帖子: 石子 质量 Output Input Sample 
2005-08-27 19:50
linwen
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-8-13
得分:0 
的规回溯
2005-08-28 11:17
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
得分:0 
忘了说,时间限制是1s,而且内存限制是1000K
那样做的话会超时的,可能内存也不够
2005-08-29 00:23
fzjz08
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-8-29
得分:0 
先排序,然后用最大的数减去第二大的数,再减去第三大的数,如过结果大于0,就再减去第四大的树,如果结果小于0,就加上第四大的数,如此循环到最后一个数
比如楼主给的例子
 5
5
8
13
27
14
排序后是
27
14
13
8
5
5
运行过程是27-14=13&gt;=0,所以13-13=0&gt;=0,所以0-8=-8&lt;=0,所以-8+5=-3&lt;=0,所以-3+5=2
最终的最小差距应该是2
两堆的分配应该是
27,5,5
14,13,8


我做过一些实验,当差距可以为0的时候,这种算法是可以得出正确结果的.因为没有通过数学证明,如果有什么问题,请多指正

2005-08-31 10:32
workhard
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2004-11-17
得分:0 
先排序,然后最大的给第一堆,次大的给第2堆。下面的数给和小的一堆。如此循环。

2005-08-31 17:05
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
得分:0 

Have you visit acm.tongji. lately?
2005-09-01 08:39
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
得分:0 
我认为这是0/1背包问题的变形.不知道大家认为呢?
我在一本书上看到这样的问题还没找到时间复杂度的算法.够难的

myQQ::445750010
2005-09-01 11:22
linwen
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-8-13
得分:0 
递归回溯不会超时的
2005-09-01 18:47
jjkl832
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-9-1
得分:0 
我同意

2005-09-01 20:11
X_ray
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-29
得分:0 
回复:(flylee)[求助]石子归并问题
n才20, 递归ms可以过......
不过, 这题明显用set枚举最方便.
2007-07-29 18:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-26165-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.858213 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved