演算法訓練 數字三角形

2021-07-26 10:56:05 字數 776 閱讀 8194

問題描述

(圖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 圖 輸入格式 檔案中首先讀到的是三角形的行數。接下來描述整個三角形 輸出格式 最大總和 整數 ...