转载:大家又没有比较好的思路阿!借鉴一下
你有一堆石头质量分别为W1,W2,W3...WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。
该程序有多组测试数据,每组测试数据第一行为整数N(1<=N<=20),表示有N堆石子。接下去N行,为每堆石子的质量。
每组测试数据只需输出合并后两堆的质量差的最小值。
558132714244
30
5 //5堆?5 81327142 //多了 4 //多了4 //多了
30 //何意?请楼主明示。
那写的2,4,4是第二次就是两堆每堆4差为0
三楼回答的非常对
求和取一半!然后将使对石头堆数组排序求和前N项小于一半,后N项大于一半,分成两个数组,两个数组元素两两求差当差大于一半和前N项和的差时循环结束!只是想的不知道能不能行啊!