題目描述
觀察下面的數字金字塔。
寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。
輸入輸出格式
輸入格式:
第乙個行包含 r(1<= r<=1000) ,表示行的數目。
後面每行為這個數字金字塔特定行包含的整數。
所有的被**的整數是非負的且不大於100。
輸出格式:
單獨的一行,包含那個可能得到的最大的和。
輸入輸出樣例
輸入樣例#1:
5
73 8
8 1 0
2 7 4 4
4 5 2 6 5
輸出樣例#1:
30
此題有很多寫法,這裡只介紹一種。。。
主要思路是從下往上遞推,假設現在n-1層,往上的n-2層就由n-1層的兩個數決定,哪個大加哪個,並改變n-2層的賦值,這樣一直改變上去直到1號節點。
上**
#include
#include
#include
#include
using
namespace
std;
int n;
int a[1005][1005];
int main()
}for(i=n-1;i>=1;i--)
}printf("%d",a[1][1]);
return
0;}
總結:dp問題重要的是狀態轉移 洛谷 P1216數字三角形
題目描述 觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。在上面的樣例中,從7 3 8 7 5 的路徑產生了最大 輸入格式 第乙個行乙個正整數 rr 表示行的數目。後面每行為這個數字金字塔特定行包含的整數。輸...
P1216 數字三角形 洛谷
觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。738 8102 7444 5265在上面的樣例中,從 7 to 3 to 8 to 7 to 57 3 8 7 5 的路徑產生了最大 輸入格式 第乙個行乙個正...
洛谷1216 數字三角形 dp
經典例題 洛谷p1216 數字三角形 寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。下圖的黑色三角形是我們記憶化搜尋的路徑,我們想想,是不是可以不通過記憶化搜尋就能得到這個黑色三角形?最優性 設走到某乙個位置的時候,它達到了路徑...