POJ 1163 動態規劃

2021-09-30 17:05:24 字數 1067 閱讀 1682

題目演算法:動態規劃;可參考我的部落格:

遞迴邊界:當遍歷到最後一行時

狀態轉移方程:

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...