模拟算法(花生采摘、潜伏者)解题报告.pptVIP

模拟算法(花生采摘、潜伏者)解题报告.ppt

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

花生采摘/潜伏者解题报告 模拟算法之 解题思路:本题采用模拟算法,设当前的多多所在的位置是(x,y);测试一下多多想要去的的位置(nextx,nexty) 如果(nextx,nexty)能够返回到路边,则跳过去,否则打印采摘的花生数量,另外一种情况是找到的(nextx,nexty)位置下的花生数量为0,也打印采摘的花生数量。 开始时,先处理一下,保证多多在最佳的位置开始起跳。 解题思路: 首先:26个字母必须在原文中出现,否则输出“Failed”。 其次:原文与密文之间是一一对应关系,即每个原文对应一个密文,每个密文对应一个原文。这一点要非常注意。 * * 花生采摘 【问题描述】 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。” 我们假定多多在每个单位时间内,可以做下列四件事情中的一件: 1)、从路边跳到最靠近路边 (即第一行)的某棵花生植株; 2)、从一棵植株跳到前后左右与之相邻的另一棵植株; 3)、采摘一棵植袜下的花生; 4)、从最靠近路边 (即第一行)的某棵花生植株跳回路边。 现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。 例如在图2所示的花生田里,只有位于(2,5),(3,7),(4,2),(5,4)的植株下长有花生,个数分别为13,7,15,9。沿着图示的路线,多多在21个单位时间内,最多可以采到37个花生。 【输入文件】 输入文件peanuts.in的第一行包括三个整数,M,N和K,用空格隔开;表示花生田的大小为M×N(1≤M,N≤20),多多采花生的限定时间为K(0≤K≤1000)个单位时间。接下来的M行,每行包括N个非负整数,也用空格隔开;第i+1行的第j个整数Pij (0≤Pij≤500)表示花生田里植株(i,j)下花生的数目,0表示该植株下没有花生。 【样例输入1】 6 7 21 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 7 0 15 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 【样例输出1】 37 【样例输入2】 6 7 20 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 7 0 15 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 【样例输出2】 28 var m,n,k:longint; a:array[0..20,0..20] of longint; procedure setio; begin assign(input,peanuts.in); assign(output,peanuts.out); reset(input); rewrite(output); end; procedure fclose; begin close(input); close(output); end; function try(var x,y:longint):longint; var i,j,max:longint; begin max:=0; for i:=1 to m do for j:=1 to n do if maxa[i,j] then begin max:=a[i,j]; x:=i; y:=j; end; try:=max; end; procedure init; var i,j:longint; begin readln(m,n,k); for i:=1 to m do begin for j:=1 to n do

文档评论(0)

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

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

1亿VIP精品文档

相关文档