数据与算法精品教学(陈健生)实验十 最佳英文排版问题.pdfVIP

数据与算法精品教学(陈健生)实验十 最佳英文排版问题.pdf

  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文档。上传文档
查看更多
数据与算法课程实验 实验十 最佳英文排版问题 1.引言: 小白喜欢写英文诗,他写诗很有自己的风格:不用标点符号,而且特别抽象,很难进行 理的断句和分段。 有一天小白又有新作品了,他觉得如果能把这诗分成两段,效果肯定棒,但是他很犹豫, 不知道该从哪里断开好。于是他只好求助于同事小陈。 小陈当然是读不懂小白的诗了,不过他的思维模式是计算机的(据说他是计算机系毕业 的),所以他打算用一种计算机范畴内的 “最佳排版”策略来进行排版和分段。“诗嘛,就是 要看起来漂亮!”小陈说。 在我们考虑的范围内,英文单词是不能断开的,也就是说一个单词不能分别处于两个行 的尾和头(有一种做法是对断开的单词的断开处加横杠以示区别,但我们不采取这种做法, 否则就不需要考虑 “最佳排版”了)。 2.实验内容: 给定一篇包含N个单词的诗,每个单词的物理长度依次为a[0],a[1],...,a[N-1]。欲将诗分 成两个段落,每个段落至少有一个单词,每个段落的排版应遵循以下规则: 每行可容纳的总字符数为M; 每个单词必须在同一行,不得断开换行; 同一行的每两个单词之间有且仅有一个空格,不考虑其他标点符号; 采用左对齐的方式排版,即每行的第一个单词排在该行最左侧; 假设排版之后共有m行,每行末端没有英文单词的空档长度记作s[0],s[1],...,s[m-1]。 不考虑最后一行的空挡大小s[m-1],设计尽可能高效的算法给段落排版,使得 P=s[0]*s[0]+s[1]*s[1]+...+s[m-2]*s[m-2] 最小。当m=1 时,P等于0. 假设第一段的最优的P值为P1,第二段的最优的P值为P2,要求令P1+P2最小。 3.输入: 第一行输入两个整数N和M,从第二行开始,输入N个整数,代表a[0]到a[N-1]。 数据范围:10=N=500000, 10=M=20000, 1=a[i]=M 4.输出: 输出三个整数,第一个整数是最优的P1+P2值,第二个整数是第一段落的最后一行的 首个单词的索引值,第三个整数是第二段落的第一行的首个单词的索引值。当存在多种可行 的解答时,采取这么一种策略:假设输出为P_total,a,b,当存在多个可行的a时,选择最 小的a;a确定之后,如果仍然存在多种可行的b,就选择最小的b。 5.样例: 输入: 1050 313362 13229 输出: 004 解释:由于该诗可以放入两行里,所以每一行各成一段就行了,此时P_total等于0 (末 行的空档不计入P 中)。有多种可行的解,显然a应当等于0,这样之后仍然有多种可能的b, 选择最小的b=4;如果b4,第二行就放不下所有单词了,而且此时不存在摆放三行而使 P_total等于0的方法。 6.提示: 用动态规划的方法,分别得到两个数组optiValuePre[N]和optiValuePost[N],含义如下: optiValuePre[i]表示以第i个单词为第一段的尾行首单词时,P1 的值。 optiValuePost[i]表示以第i个单词为第二段的头行首单词时,P2 的值。 然后就可以利用这两个数组,来寻找最佳的分段位置了。这种算法用了三轮动态规划, 每一轮的复杂度相似。 积极开动脑筋,也许你能得到更好的解法。 假如你只在大样例上得到了错误结果,请考虑目标函数P 的数据范围。 7.评分标准:  使用C或C++实现  共有5个测试样例,难度递增,每个20分  拒绝抄袭 参考文献: [1].何宗林,基于动态规划策略的英文文档排版算法

您可能关注的文档

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档