數字金字塔(順推) DP

2021-08-28 07:20:25 字數 1175 閱讀 3612

> description

考慮在下面被顯示的數字金字塔。

寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。

每一步可以走到左下方的點也可以到達右下方的點。

73 8

8 1 0

2 7 4 4

4 5 2 6 5

在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大和:30

> input

第乙個行包含 r(1<= r<=1000) ,表示行的數目。

後面每行為這個數字金字塔特定行包含的整數。

所有的被**的整數是非負的且不大於100。

> output

單獨的一行包含那個可能得到的最大的和。

> sample input57

3 88 1 0

2 7 4 4

4 5 2 6 5

> sample output

> 解題思路

這一道題跟楊輝三角形楊輝三角形還是hin像的,從第一行開始,存數隻需要乙個一維陣列,中間的節點(x,y)只會從(x-1,y)和(x-1,y-1)這兩個數過來,然而用一維陣列的話就只用從(y)和(y-1)這兩個地方過來,所以呢只用判斷(y)和(y-1)這兩個數那乙個大就加上哪乙個就行了。邊邊的就更簡單了,因為它只有可能從乙個地方過來。

要注意的是判斷這一部分要倒著加,不然以後的數會發生變化。

> **

#include

#include

#include

using namespace std;

int r,a[

1001

],f[

1001];

//a存原數,f累加

int main()

for(int i=

1;i<=r;i++)if

(f[i]

>ans) ans=f[i]

;//選出最大的那個數

printf

("%d"

,ans)

;return0;

}

數字金字塔 一維,順推)

題目 description 你和權權是一對很好很好的朋友。有一天,你們無聊得很,便上網衝浪,突然在乙個叫做usaco的網中找到了乙個遊戲 數字金子塔 遊戲規則是這樣的 求乙個數字金字塔中從最高點開始在底部任意處結束的路徑經過數字的和的最大,其中的每一步可以走到下方的點也可以到達右下方的點。例如在下...

數字金字塔(dp)

考慮在下面被顯示的數字金字塔。寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每一步可以走到左下方的點也可以到達右下方的點。73 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大和 30 第乙個行包含 r...

字母金字塔(類同數字金字塔)

問題描述 讓程式要求使用者輸入乙個大寫字母,使用巢狀迴圈產生像下面這樣的金字塔圖案 aaba abcba abcdba abcdecba 演算法分析 每行包括三個部分內容 若干個空格 正序排列的字母 倒序排列的字幕。使用乙個外部迴圈來處理行,在每乙個行中使用三個內部迴圈 乙個處理空格,乙個以公升序列...