标签:max 上下 输出 inline tin idt 一个人 左右 field
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 97335 | Accepted: 36911 |
Description
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Input
Output
Sample Input
5 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
Sample Output
25
Source
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
inline int read(){
int x=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c==‘-‘) f=-1;
for(;isdigit(c);c=getchar()) x=x*10+c-‘0‘;
return x*f;
}
int Map[101][101];
int rez[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int a[101][101];
int N,M;
int ans=-99999;
int SER(int x,int y){
if(a[x][y]) return a[x][y];
int k=1;
for(int i=0;i<4;i++){
int xx=x+rez[i][0];
int yy=y+rez[i][1];
if(Map[xx][yy]>=Map[x][y]) continue;
if(xx<1||xx>N||yy<1||yy>M) continue;
k=max(k,SER(xx,yy)+1);
}
a[x][y]=k;
return k;
}
int main(){
N=read(),M=read();
for(int i=1;i<=N;i++){
for(int j=1;j<=M;j++)
Map[i][j]=read();
}
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
ans=max(ans,SER(i,j));
printf("%d\n",ans);
}
标签:max 上下 输出 inline tin idt 一个人 左右 field
原文地址:http://www.cnblogs.com/wxjor/p/6925934.html