codevs動態規劃 數字三角形
阿新 • • 發佈:2019-01-26
如圖所示的數字三角形,從頂部出發,在每一結點可以選擇向左走或得向右走,一直走到底層,要求找出一條路徑,使路徑上的值最大。
分析:超菜的一道倒推題(完全無腦==)
動態轉移方程: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.