1. 程式人生 > >Poj 1088 滑雪 遞歸實現

Poj 1088 滑雪 遞歸實現

遞歸實現 esp efi div size bsp != print 滑雪

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 #define MAX_N 105
 5 using namespace std;
 6 int len[MAX_N][MAX_N],A[MAX_N][MAX_N];
 7 int d[4][2]= {{-1,0},{0,1},{1,0},{0,-1}};  //左 下 右 上
 8 int R,C;
 9 int Dp(int i,int j)
10 {
11     if(len[i][j]!=0)return len[i][j];
12 int Max=0,s; 13 for(int t=0; t<4; t++) 14 { 15 int x1=i+d[t][0],y1=j+d[t][1]; //四個方向變換後的x y值 16 if(x1>=0&&x1<R&&y1>=0&&y1<C&&A[x1][y1]<A[i][j]) 17 { 18 s=Dp(x1,y1); 19 if(s>Max)Max=s; 20 }
21 22 } 23 return Max+1; 24 } 25 26 int main() 27 { 28 while(scanf("%d%d",&R,&C)!=EOF) 29 { 30 int Mx=-1; 31 memset(len,0,sizeof(len)); 32 for(int i=0; i<R; i++) 33 for(int j=0; j<C; j++) 34 scanf("%d",&A[i][j]); 35 for
(int i=0; i<R; i++) 36 for(int j=0; j<C; j++) 37 { 38 len[i][j]=Dp(i,j); 39 if(len[i][j]>Mx)Mx=len[i][j]; 40 } 41 printf("%d\n",Mx); 42 } 43 44 }

Poj 1088 滑雪 遞歸實現