回 帖 发 新 帖 刷新版面

主题:[讨论]石子合并

在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定
每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
编一程序,由文件读入堆数N及每堆的石子数(≤20),
①选择一种合并石子的方案,使得做N-1次合并,得分的总和最小;
②选择一种合并石子的方案,使得做N-1次合并,得分的总和最大。



标程无所谓,只要有详细的分析就行了

回复列表 (共8个回复)

沙发

先排序,再贪心,第一问与合并果子相似

板凳

貌似贪心不对,试试动归……
动归算钱n堆的最大值然后钱n+1的最高=max((合并最后两堆+前n-2),前n-1)。
就是要枚举一下谁做第一堆。

3 楼

经典DP

4 楼

排序啊,之后贪心

5 楼


能过一部分,但大数据还是过不了得

6 楼

能够把你写好的程序发上来吗?

7 楼

动态规划

8 楼

貌似贪心都行~~~
Huffman树把~~
只要枚举谁是第一堆,再从那里切断就成了
动规吗??咋写

我来回复

您尚未登录,请登录后再回复。点此登录或注册