遞推 數字三角形

2021-06-27 06:15:34 字數 1056 閱讀 9907

/*

input:57

3 88 1 0

2 7 4 4

4 5 2 6 5

output:

30 數字三角形,可以說是一道很經典的題了,這道題應該出現在dp的入門題裡,

但是在這裡提前介紹也是有原因的,因為遞推中同樣涉及了這個關係式的推導,

好了,來仔細研究下這個三角形吧,總之這個三角形很重要,思想和方法一定要

領會,在後面的很多題目中,都是這種型別題目的變形。

要輸出的是從三角形的頂部到最後一行的所有數字的和的問題,關於這個問題

我想在小學奧數中肯定接觸過諸如此類類似的題目,當時大家是怎麼解決?qaq,忘了

忘了,肯定是草稿上亂擼一片,然後就出來了乙個看似正確的結果,再將其放進去了

tat,這樣的學習是錯誤的,學習就應該抓本質和抓概念,而不能抓作業和抓考試,

否則到頭來,啥東西也沒學會。。。。。

先看看這個題吧,我們採用倒推的手段來處理這個題目,首先,我們假設a[i][j]中

存放的是我們需要的數值,也就是說,a[i][j]表示的是從第一行到第i行的最優的

那條路線和,但是,我們卻要用a[i+1][j+1]來表示題目中的的最後一行。

然後由a[i][j]+=max從結果行到第一行一次遞迴運算就行了,

最後輸出a[1][1]就是我們需要的結果了。因為,a[i][j]存放的是才第i行到i+1行的

最優路線和,而a[i-1][j-1]存放的確實第i-1行到第i+1行的最優路線和,一次一次的

往前推,認真想,肯定是能想會的,那麼a[1][1]就是我們需要的最優路線和了。

*/# include# include# includeusing namespace std;

int a[123][123];

int main(void)

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

}cout

}

實驗室這幾天沒流量了,不知道是哪個片帝在用p2p下片,導致我寫了好多東西都沒辦法上傳,也刷不了題了qaq,,,, 

數字三角形 遞推演算法

如下所示為乙個數字三角形。請編乙個程式計算從頂到底的某處的一條路徑,使該路徑所經過的數字總和最大。只要求輸出總和。1 一步可沿左斜線向下或右斜線向下走 2 三角形行數小於等於100 3 三角形中的數字為0,1,99 測試資料通過鍵盤逐行輸入,如上例資料應以如下所示格式輸入 57 3 88 1 0 2...

數字三角形

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

數字三角形

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