2458627_ac_108ms_380k.cc

来自「做的POJ的一些题目」· CC 代码 · 共 77 行

CC
77
字号
#include<iostream>
using namespace std;
int huaxue(int flag[100][100],int mg[100][100],int row,int col,int n,int m)
{
    int k=1; 
   if(n>0 && mg[n][m]>mg[n-1][m])
     {
         if(flag[n-1][m]==0)
         {
           int t=huaxue(flag,mg,row,col,n-1,m)+1;
           if(k<t)
             k=t; 
         }        
         else if(k<flag[n-1][m]+1)
            k=flag[n-1][m]+1;    
     }
     if(m>0 && mg[n][m]>mg[n][m-1])
     {
         if(flag[n][m-1]==0)
         {
            int t=huaxue(flag,mg,row,col,n,m-1)+1;
            if(k<t)
              k=t;    
         }        
         else if(k<flag[n][m-1]+1)
            k=flag[n][m-1]+1;    
     }
     if(n<row && mg[n][m]>mg[n+1][m])
     {    
          int t=huaxue(flag,mg,row,col,n+1,m)+1;
          if(k<t)
             k=t;
     }
     if(m<col && mg[n][m]>mg[n][m+1])
     {
          int t=huaxue(flag,mg,row,col,n,m+1)+1;
          if(k<t)
            k=t;   
     }  
     flag[n][m]=k;  
     return k;      
}
int main()
{
    int row,col;
    int max=0;
    cin>>row;
    cin>>col;
    int mg[100][100];
    int flag[100][100];
    for(int i=0;i<row;i++)
     {
       for(int j=0;j<col;j++)
       {
            flag[i][j]=0;    
       }        
     }
    for(int i=0;i<row;i++)
    {
       for(int j=0;j<col;j++)
       {
            cin>>mg[i][j];    
       }        
    }        
    for(int i=0;i<row;i++)
    {
       for(int j=0;j<col;j++)
       {
            int temp=huaxue(flag,mg,row-1,col-1,i,j);
            if(temp>max)
              max=temp;   
       }        
    } 
    cout<<max<<endl;
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?