題目演算法:動態規劃;可參考我的部落格:
遞迴邊界:當遍歷到最後一行時
狀態轉移方程:
sum[i][j]=max(maxsum(i+1,j),maxsum(i+1,j+1))+num[i][j]
遞迴的思路就是從上到下一直遍歷,直到到達邊界為止。
c語言的ac**如下:
//peking university acm 1163
//algorithm: lcs
#include#define max 101
int max(int,int); //求最大值
int maxsum(int,int); //求最大的和
void zero();//將sum中的數全化為0
int num[max][max]; //用來輸入
int sum[max][max]; //用來儲存算出來的和(用空間換時間,lcs的精華所在)
int linenumber; //行數
int main()
int maxsum(int i,int j)
遞推的思路是從下往上走,第四行找到第五行最大的相加,第三行與第四行和第五行的和相加
c語言的ac**如下:
//peking university acm 1163
//algorithm: lcs
#include#define max 101
int max(int,int); //求最大值
int maxsum(); //求最大的和
void zero();//將sum中的數全化為0
int num[max][max]; //用來輸入
int sum[max][max]; //用來儲存算出來的和(用空間換時間,lcs的精華所在)
int linenumber; //行數
int main()
int maxsum()
{ int i,j;
for(i=0;i=0;i--)//從下往上 (從到數第一行開始)
for(j=0;j
poj 1163 動態規劃
這道題目並不能直接使用遞迴,因為 7 1 7 1 7 1 7 1 7 2 7 1 7 1 7 3 7 3 7 1 7 1 7 4 7 6 7 4 7 1 假設題目中的資料是這樣子的,小括號內代表著每個數被遞迴呼叫的次數。這個三角實際上是乙個楊輝三角,它的和為 2 n 2 題目中的層數大小是100以內...
poj 1163 動態規劃
這道題目並不能直接使用遞迴,因為 7 1 7 1 7 1 7 1 7 2 7 1 7 1 7 3 7 3 7 1 7 1 7 4 7 6 7 4 7 1 假設題目中的資料是這樣子的,小括號內代表著每個數被遞迴呼叫的次數。這個三角實際上是乙個楊輝三角,它的和為 2 n 2 題目中的層數大小是100以內...
poj1163 數字三角形 動態規劃
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...