动态规划题目及其代码动态规题目及其代码动态规划题目及其代码动态规划题目及其代码.doc

动态规划题目及其代码动态规题目及其代码动态规划题目及其代码动态规划题目及其代码.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划题目及其代码动态规题目及其代码动态规划题目及其代码动态规划题目及其代码

动态规划题目及其代码 By LYLtim 1、数塔问题(tower.pas) 设有一个三角形的数塔,如下图所示。顶点结点称为根结点,每个结点有一个整数数值。从顶点出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大。 【样例输入】tower.in 5?????? {数塔层数} 13 11?? 8 12?? 7??? 26 6?? 14??? 15??? 8 12?? 7??? 13?? 24??? 11 【样例输出】tower.out max=86 【参考程序】 uses math; var n,i,j:byte; ??? a:array[1..10,1..10]of word; ??? f:array[1..10,1..10]of word; begin ??? assign(input,tower.in);reset(input); ??? assign(output,tower.out);rewrite(output); ??? readln(n); ??? for i:=1 to n do ??????? begin ??????????? for j:=1 to i do ??????????????? read(a[i,j]); ??????????? readln; ??????? end; ??? fillchar(f,sizeof(f),0); ??? for i:=1 to n do f[n,i]:=a[n,i]; ??? for i:=n-1 downto 1 do ??????? for j:=1 to i do ??????????? f[i,j]:=max(f[i+1,j],f[i+1,j+1])+a[i,j]; ??? writeln(max=,f[1,1]); ??? close(input);close(output); end. 2、拦截导弹(missile.pas) ??? 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 ?? 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。 【样例输入】 missile.in???????????????????????? 389 207 155 300 299 170 158 65???? 【输出样例】missile.out 6(最多能拦截的导弹数) 2(要拦截所有导弹最少要配备的系统数) 【参考程序】 type node=record ?? h,lens:word; ????end; var n,i,j,maxl,num,minsys:word; ??? mis:array[word]of node; ??? sysl:array[word]of word; begin ??? assign(input,missile.in);reset(input); ??? assign(output,missile.out);rewrite(output); ??? while not eoln do ??????? begin ??????????? inc(n); ??????????? read(mis[n].h); ??????????? mis[n].lens:=1; ??????? end; ??? for i:=2 to n do ??????? begin ?????for j:=1 to i-1 do ???? if(mis[j].hmis[i].h)and(mis[j].lens+1mis[i].lens) then???mis[i].lens:=mis[j].lens+1; ?????if mis[i].lensmaxl then maxl:=mis[i].lens; ??????? end; ??? writeln(maxl); ??? num:=1; ??? sysl[0]:=maxint; ??? sysl[1]:=mis[1].h; ??? for i:=2 to n do ??????? begin ????????? minsys:=0; ?????????for j:=1 to num do ???????if(sysl[j]=mis[i].h)and(sysl[j]sysl[minsys])

您可能关注的文档

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档