zoukankan      html  css  js  c++  java
  • Poj 1088 滑雪 递归实现

     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
    ",Mx);
    42     }
    43 
    44 }
  • 相关阅读:
    [紫书] 八数码问题(BFS)
    [紫书] 移动盒子(Boxes in a Line)
    [洛谷] P1803 凌乱的yyy / 线段覆盖 (贪心)
    [紫书] 破损的键盘(Broken Keyboard)
    bzoj3891
    poj3233
    bzoj1941
    Vijos2034
    poj2985
    Vijos1100
  • 原文地址:https://www.cnblogs.com/Yinchen-One/p/8384313.html
Copyright © 2011-2022 走看看