1.記憶遞迴型(自頂向下)
d[i][j]來存數字
典型的遞迴問題:d(r,j)出發,下一步只能走d(r+1,j)或者d(r+1,j+1).故對於n行的三角形:
if(r==n)
maxsum(r,j)=d(r,j)
else
maxsum(r,j)=max(maxsum(r+1,j),maxsum(r+1,j+1)
)+d(r,j)用ans[i][j]來存計算出的結果,避免重複計算
#include using namespace std;
#define max 101
int d[max][max];
int ans[max][max];
int n;
int maxsum(int i,int j)
int main()
}cout<
#include using namespace std;
#define max 101
int d[max][max];
int ans[max][max];
int n;
int main()
cout#define max 101
int d[max][max];
int *ans;
int n;
int main()
POJ 1163數字三角形
所犯錯誤 1 在迴圈中用scanf輸入陣列元素時時,忘記敲 位址符,導致程式停止,改正 2 在測試時想輸出這個二維陣列的所有元素,雖然用了雙重迴圈,但輸出時只寫了a i 導致輸出了位址 3 這道題不能用萬能標頭檔案,識別不了,可以用 include 心得 1 73 8 8 1 0 2 7 4 4 4...
POJ 1163 數字三角形
portal dp經典題,ioi94考題,在各大oj上都有 1 include2 include3 include 4 include5 include6 include7 using namespace std 8 define for i,j,k for int i j i k i 9 defi...
POJ1163 數字三角形 經典DP題目
題目大意 如圖所示的數字三角形,從頂部出發,在每一結點可以選擇向左走或得向右走,一直走到底層,要求找出一條路徑,使路徑上的值的和最大。圖是我盜的 如果用陣列num j i 表示j行i列的數字,dp j i 表示從該位置向下走的子問題的最優解,整個問題最終就是要求解dp 1 1 就是最頂端的位置的最優...