动态规划题目及其代码ByLYLtim1、数塔问题(tower
pas)设有一个三角形的数塔,如下图所示
顶点结点称为根结点,每个结点有一个整数数值
从顶点出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大
【样例输入】tower
in5{数塔层数}1311812726614158127132411【样例输出】tower
outmax=86【参考程序】usesmath;varn,i,j:byte;a:array[1
10]ofword;f:array[1
10]ofword;beginassign(input,'tower
in');reset(input);assign(output,'tower
out');rewrite(output);readln(n);fori:=1tondobeginforj:=1toidoread(a[i,j]);readln;end;fillchar(f,sizeof(f),0);fori:=1tondof[n,i]:=a[n,i];fori:=n-1downto1doforj:=1toidof[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)某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统
但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度
某天,雷达捕捉到敌国的导弹来袭
由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹
输入导弹依次飞来的高度(雷达给出的高度数