觀察下面的數字金字塔。
寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大
第乙個行包含 r(1<= r<=1000) ,表示行的數目。
後面每行為這個數字金字塔特定行包含的整數。
所有的被**的整數是非負的且不大於100。
單獨的一行,包含那個可能得到的最大的和。
5
73 8
8 1 0
2 7 4 4
4 5 2 6 5
30
從下往上推,設dp[i][j]來表示走到第i層的第j個數的最大價值,則狀態轉移方程為:dp[i][j]=max(dp[i-1][j],dp[i-1][j+1])+n[i][j],由於d[i][j]的值只與d[i-1][j]和dp[i-1][j+1]有關,所以可以優化成一維陣列,即狀態轉移方程就變成了dp[j]=max(dp[j],dp[j+1])+n[i][j]。
#include #include using namespace std;
const int n=1200;
int dp[n],n[n][n];
int main()
洛谷1216 數字三角形
題目描述 觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。7 3 8 8 1 02 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大 輸入輸出格式 輸入格...
洛谷1216 數字三角形 dp
經典例題 洛谷p1216 數字三角形 寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。下圖的黑色三角形是我們記憶化搜尋的路徑,我們想想,是不是可以不通過記憶化搜尋就能得到這個黑色三角形?最優性 設走到某乙個位置的時候,它達到了路徑...
數字三角形
題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 25 三角形中的數字為整數 1000 輸入第一行為n,表示有n行 後面n行表示三角形每條路的路徑權 輸出路徑所經過的數字的總和最大的答案 樣...