主题:[讨论]石子合并
无所不能
[专家分:270] 发布于 2009-07-11 17:00:00
在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定
每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
编一程序,由文件读入堆数N及每堆的石子数(≤20),
①选择一种合并石子的方案,使得做N-1次合并,得分的总和最小;
②选择一种合并石子的方案,使得做N-1次合并,得分的总和最大。
标程无所谓,只要有详细的分析就行了
回复列表 (共8个回复)
沙发
wangzhongqi96 [专家分:40] 发布于 2009-07-12 21:08:00
先排序,再贪心,第一问与合并果子相似
板凳
小田甜 [专家分:3910] 发布于 2009-07-13 12:38:00
貌似贪心不对,试试动归……
动归算钱n堆的最大值然后钱n+1的最高=max((合并最后两堆+前n-2),前n-1)。
就是要枚举一下谁做第一堆。
3 楼
angwuy [专家分:2280] 发布于 2009-07-14 18:05:00
经典DP
4 楼
tzhlryy [专家分:270] 发布于 2009-08-02 18:40:00
排序啊,之后贪心
5 楼
无所不能 [专家分:270] 发布于 2009-08-06 19:37:00
能过一部分,但大数据还是过不了得
6 楼
小田甜 [专家分:3910] 发布于 2009-08-07 16:29:00
能够把你写好的程序发上来吗?
7 楼
天天和和 [专家分:1420] 发布于 2009-08-19 10:42:00
动态规划
8 楼
abcwuhang [专家分:1840] 发布于 2009-08-20 16:45:00
貌似贪心都行~~~
Huffman树把~~
只要枚举谁是第一堆,再从那里切断就成了
动规吗??咋写
我来回复