石子合并问题报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
石子合并问题报告

石子合并(动态规划)详细解题报告 2007-02-25 14:58 一.试题 ????? 在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定 ????? 每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 ????? 编一程序,由文件读入堆数N及每堆的石子数(≤20), ????? ①选择一种合并石子的方案,使得做N-1次合并,得分的总和最小; ????? ②选择一种合并石子的方案,使得做N-1次合并,得分的总和最大。 ????? 例如,所示的4堆石子,每堆石子数(从最上面的一堆数起,顺时针数)依 ????? 次为4594。则3次合并得分总和最小的方案:8+13+22=43 ????? 得分最大的方案为:14+18+22=54 ????? 输入数据: ????? 文件名由键盘输入,该文件内容为: ????? 第一行为石子堆数N; ????? 第二行为每堆的石子数,每两个数之间用一个空格符分隔。 ????? 输出数据: ????? 输出文件名为output.txt ????? 从第1至第N行为得分最小的合并方案。第N+1行是空行。从第N+2行到第2N+1行是得 ????? 分最大合并方案。 ????? 每种合并方案用N行表示,其中第i行(1≤i≤N)表示第i 次合并前各堆的石子数(依 ????? 顺时针次序输出,哪一堆先输出均可)。 要求将待合并的两堆石子数以相应的负数表示,以便标识。 ????? 输入输出范例: ????? 输入文件内容: ????? 4 ????? 4 59 4 ????? 输出文件内容: ????? -4 5 9 -4 ????? -8-5 9 ????? -13 -9 ????? 22 ?????? ????? 4 -5 -9 4 ????? 4 -14 -4 ????? -4-18 ????? 22 ????? 二.算法分析 ????? 竞赛中多数选手都不约而同地采用了尽可能逼近目标的贪心法来逐次合并:从最上面 ????? 的一堆开始,沿顺时针方向排成一个序列。 第一次选得分最小(最大)的相邻两堆合并, ????? 形成新的一堆;接下来,在N-1堆中选得分最小(最大)的相邻两堆合并……,依次类推, ????? 直至所有石子经N-1次合并后形成一堆。 ????? 例如有6堆石子,每堆石子数(从最上面一堆数起,顺时针数)依次为3 46 5 4 2 ????? 要求选择一种合并石子的方案,使得做5次合并,得分的总和最小。 ????? 按照贪心法,合并的过程如下: ????? 每次合并得分 ????? 第一次合并 3 4 6 5 4 2 -5 ????? 第二次合并 5 4 6 5 4??? -9 ????? 第三次合并 9 6 5 4?????? -9 ????? 第四次合并 9 6 9????????? -15 ????? 第五次合并 15 9?????????? -24 ????? 24 ????? 总得分=5+9+9+15+24=62 ????? 但是当我们仔细琢磨后,可得出另一个合并石子的方案: ????? 每次合并得分 ????? 第一次合并 3 4 6 5 4 2? -7 ????? 第二次合并 7 6 5 4 2???? -13 ????? 第三次合并 13 5 4 2????? -6 ????? 第四次合并 13 5 6???????? -11 ????? 第五次合并 13 11????????? -24 ????? 24 ????? 总得分=7+6+11+13+24=61 ????? 显然,后者比贪心法得出的合并方案更优。 题目中的示例故意造成一个贪心法解题的 ????? 假像,诱使读者进入“陷阱”。为了帮助读者从这个“陷阱”里走出来, 我们先来明确一个问题: ????? 1.最佳合并过程符合最佳原理 ????? 使用贪心法至所以可能出错, ????? 是因为每一次选择得分最小(最大)的相邻两堆合并,不一定保证余下的合并过程能导致最优解。聪明的读者马上会想到一种理想的假设:如果N-1次合并的全局最优解包含了每一次合并的子问题的最优解,那么经这样的N-1次合并后的得分总和必然是最优的。 ????? 例如上例中第五次合并石子数分别为13和11的相邻两堆。 ????? 这两堆石头分别由最初的第1,2,3堆(石头数分别为3,4,6)和第4,5,6堆(石头数分别为5,4,2)经4次合并后形成的。于是问题又归结为如何使得这两个子序列的N-2 ????? 次合并的得分总和最优。为了实现这一目标,我们将第1个序列又一分为二:第1、2堆构成子序列1, ????? 第3堆为子序列2。第一次合并子序列1中的两堆,得分7; ???

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档