題意:要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?
可以直接用遞迴計算,將數塔看成一棵樹,用陣列實現,分別遞迴的求出每棵子樹的最大值
再進行比較,取其中每步的最大值,由底至上,逐層比較,最後的出最大和。
#include
#define size 100
int val[size][size];
int count(int n,int i,int j)
leftnum = count(n-1,i+1,j);
rightnum = count(n-1,i+1,j+1);
if(leftnum > rightnum)
else
max = max + val[i][j];
return max;
} int main()
} max = count(n,0,0);
printf("%d\n",max);
} }
return 0;
}
動態規劃 Problem F
動態規劃 problem f 題意 數塔問題,有數塔 類似於三角形數字但稍有不同 要求從頂層走到底層,若每一步只能走到相鄰的結點,求經過的結點的數字之和最大是多少。解題思路 可以採用從下往上的思路,即從最後一排的數向上遞推,這時候的狀態方程為 dp i j dp i 1 j 1 dp i 1 j 按...
動態規劃 什麼是動態規劃?
先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...
mysql動態規劃 動態規劃
動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...