基本算法递推法实例.pptVIP

  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文档。上传文档
查看更多

vari,j,n,m:integer;a:array[1..20,1..20]oflongint;beginread(n,m);fillchar(a,sizeof(a),0);fori:=1tondoa[I,1]:=1;forj:=1tomdoa[1,j]:=1;fori:=2tondoforj:=2tomdoa[I,j]:=a[I,j-1]+a[i-1,j];writeln(a[n,m]);end.要想到达坐标为(i,j)的顶点的话,必定要经过坐标为(i-1,j)的顶点或坐标为(i,j-1)的顶点,设a(I,j)表示从点A到顶点(I,j)的路径总条数,则a(I,j)=a(I,j-1)+a(i-1,j)输入:59输出:495第60页,共86页,星期日,2025年,2月5日街道路径设有一个N*M(1=N=50,1=M=50)的街道,规定行人从A(1,1)出发,在街道上只能向东或北行走。若在此街道中,设置一个矩形障碍区域(包括围住该区域的的街道)不让行人通行,如上图中用“*”表示的部分。此矩形障碍区域用2对顶点坐标给出,如上图中的2对顶点坐标为(2,2),(8,4),此时从A出发到达B的路径有两条。现给出N、M,同时再给出此街道中的矩形障碍区域的2对顶点坐标(x1,y1),(x2,y2),请求出此时所有从A出发到达B的路径的条数。由于在街上只能向东或北方向行走,因此要想达到坐标为(i,j)的顶点的话,必定要经过坐标为(i-1,j)的顶点或坐标为(i,j-1)的顶点,假设从起始顶点到达坐标为(i,j)的顶点的路径总数为a[i,j],则a[i,j]=a[i-1,j]+a[i,j-1]。因此我们可以采用逐行递推的方法来求出从起始顶点到达任意一个顶点的路径总数。第61页,共86页,星期日,2025年,2月5日输入文件hanoi.in为一个正整数n,表示在A柱上放有2n个圆盘。输出文件hanoi.out仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An。【样例1】hanoi.inhanoi.out12【样例2】hanoi.inhanoi.out26【限制】对于50%的数据,1=n=25对于100%的数据,1=n=200【提示】设法建立An与An-1的递推关系式。第28页,共86页,星期日,2025年,2月5日解题思路:递推+高精度1.假设当前要移动A轴的N层,即2N个盘子,则需要将N-1层的2N-2个盘子移动到B轴(辅助轴)上,再将第N层的2个盘子移动到C轴上(目标轴),然后再将那N-1层的2N-2个盘子移动到目标轴,共需要2*An-1+2次。2.递推关系式是:An=2*An-1+2A0=026143062126254…还可以:An=An-1+2n第29页,共86页,星期日,2025年,2月5日vara:array[1..62]ofinteger;{存放大数}i,j,n:integer;f:boolean;beginassign(input,hanoi.in);assign(output,hanoi.out);reset(input);rewrite(output);readln(n);{层数}fori:=1to62doa[i]:=0;{初值}fori:=1tondo{递推n次}beginforj:=1to62doa[j]:=a[j]*2;{先乘2}a[1]:=a[1]+2;{再在个位上加2}forj:=1to62doifa[j]9thenbegin{处理进位}a[j+1]:=a[j+1]+1;a[j]:=a[j]mod10;end;end;f:=false;fori:=62downto1dobeginifa[i

文档评论(0)

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

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

1亿VIP精品文档

相关文档