如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大。
分析:超菜的一道倒推题(完全无脑==)
动态转移方程:f[i,j]:=max(f[i+1,j],f[i+1,j+1])+f[i,j];
const maxn=100; var a:array[1..maxn,1..maxn] of longint; i,j,n:longint; function max(x,y:longint):longint; begin if x<y then exit(y) else exit(x); end; begin readln(n); for i:=1 to n do for j:=1 to i do if j<i then read(a[i,j]) else readln(a[i,j]); for i:=n-1 downto 1 do for j:=1 to i do a[i,j]:=a[i,j]+max(a[i+1,j],a[i+1,j+1]); writeln(a[1,1]); end.
转载请注明原文地址: https://ju.6miu.com/read-4321.html