題目:
description
你和權權是一對很好很好的朋友。有一天,你們無聊得很,便上網衝浪,突然在乙個叫做usaco的網中找到了乙個遊戲:《數字金子塔》。遊戲規則是這樣的:求乙個數字金字塔中從最高點開始在底部任意處結束的路徑經過數字的和的最大,其中的每一步可以走到下方的點也可以到達右下方的點。例如在下面的例子中,從7 — 3 — 8 — 7 –- 5的路徑產生了最大和:30。
7 3 8
8 1 0
2 7 4 4
4 5 2 6 5
你們便約定了誰能計算出最後的值便是贏者。你仰天(天花板)長嘆:我能成為贏者嗎,要知道權權可是很厲害的哦……
input
第一行輸入n(1<=n<=1000),表示數字金字塔行的數目。後面n輸入這個數字金字塔,每個數字皆為整數(1<=x<=10000),每2個整數之間有1個空格。
output
單獨一行輸出最後得到的最大的和。
作者思路:用順推還可以更節省空間。
遞推式:f[j]:=max+a[j];
**:
var a:array[0..1001] of longint;
f:array[0..1001] of longint;
n,i,j,ans:longint;
function
max(a,b:longint):longint;
begin
if a>b then
exit(a) else
exit(b);
end;
begin
read(n);
read(a[1]); f[1]:=a[1];
for i:=2
to n do
begin
for j:=1
to i do
read(a[j]);
for j:=i downto2do
f[j]:=max(f[j],f[j-1])+a[j];
f[1]:=a[1]+f[1];
end;
for i:=1
to n do
if f[i]>ans then ans:=f[i];
write(ans);
end.
數字金字塔(順推) DP
description 考慮在下面被顯示的數字金字塔。寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每一步可以走到左下方的點也可以到達右下方的點。73 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大和...
字母金字塔(類同數字金字塔)
問題描述 讓程式要求使用者輸入乙個大寫字母,使用巢狀迴圈產生像下面這樣的金字塔圖案 aaba abcba abcdba abcdecba 演算法分析 每行包括三個部分內容 若干個空格 正序排列的字母 倒序排列的字幕。使用乙個外部迴圈來處理行,在每乙個行中使用三個內部迴圈 乙個處理空格,乙個以公升序列...
數字金字塔
觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大 多組輸入資料 第乙個行包含 r...