問題描述
(圖3.1-1)示出了乙個數字三角形。 請編乙個程式計算從頂至底的某處的一條路
徑,使該路徑所經過的數字的總和最大。
●每一步可沿左斜線向下或右斜線向下走;
●1<三角形行數≤100;
●三角形中的數字為整數0,1,…99;
(圖3.1-1)
輸入格式
檔案中首先讀到的是三角形的行數。
接下來描述整個三角形
輸出格式
最大總和(整數)
樣例輸入 5
73 8
8 1 0
2 7 4 4
4 5 2 6 5
樣例輸出 30
思路:記憶化遞迴,maxa陣列記錄下左和下右的最大值,不為-1說明maxa[i][j]此時有值,不用重複計算
**:
#include#include#includeusing namespace std;
int a[102][102],maxa[102][102],n;
int maxsum(int i,int j)
return maxa[i][j];
}int main()
{ int i,j;
cin>>n;
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
cin>>a[i][j];
memset(maxa,-1,sizeof(maxa));
cout<
演算法訓練 數字三角形
問題描述 圖 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 100 三角形中的數字為整數0,1,99 圖 輸入格式 檔案中首先讀到的是三角形的行數。接下來描述整個三角形 輸出格式 最大總和 整數 ...
藍橋杯 演算法訓練 數字三角形
演算法訓練 數字三角形 時間限制 1.0s 記憶體限制 256.0mb 問題描述 圖 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 100 三角形中的數字為整數0,1,99 圖 輸入格式 檔案中首...
藍橋杯 演算法訓練 數字三角形
問題描述 圖 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 100 三角形中的數字為整數0,1,99 圖 輸入格式 檔案中首先讀到的是三角形的行數。接下來描述整個三角形 輸出格式 最大總和 整數 ...