數字三角形II

2021-08-07 09:15:16 字數 1510 閱讀 5371

時間限制: 1 sec  

記憶體限制: 128 mb

第1行:1個整數n,表示數字三角形的行數和列數(1 <= n <= 1000)

接下來n行,第i行有i個整數,表示數字三角形

第1行:1個整數,表示問題的最優解

5

13 6

9 9 1

5 5 2 3

2 9 7 6 1

30

這道題和數字三角形i略有相似,點我檢視數字三角形i。

—————————————————分析——————————————————

這道題和數字三角形i的唯一不同就是這道題可以在某一行跳到下一行的隨機位置。

那麼問題來了,怎樣確定在哪一行跳呢,或者是不跳呢?

我們可以這樣想,如果這乙個數它上面的數列和最大,而下面的數列和也最大,那麼這個數就是目標數。

所以,直接上**……

———————————————**實現——————————————————

#include

#include

#include

using namespace std;

const int o=1005;

int a[o][o],b[o][o],c[o][o],n,ans,max1,max2;

int main()

for(i=2;i<=n;i++)

for(j=2;j<=i-1;j++)

b[i][j]=max(b[i-1][j],b[i-1][j-1])+a[i][j];

/*****自底向上求解路徑最大值**********/

for(j=1;j<=n;j++)

c[n][j]=a[n][j];

for(i=n-1;i>=1;i--)

for(j=1;j<=i;j++)

c[i][j]=max(c[i+1][j],c[i+1][j+1])+a[i][j];

ans=c[1][1];

for(i=2;i

數字三角形

題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 25 三角形中的數字為整數 1000 輸入第一行為n,表示有n行 後面n行表示三角形每條路的路徑權 輸出路徑所經過的數字的總和最大的答案 樣...

數字三角形

description 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,...

數字三角形

3 8 8 1 0 2 7 4 4 4 5 2 6 5 上圖給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。input 1 5 7 3 8 8 1 0 2 7 4 4 4 ...