哇咔咔冲啊 @ 2018-11-24 16:41:23
#include<iostream>
using namespace std;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
long long f[1001][1001],m[1001][1001],mm,n,k,tmp,ans=0,t,nx,ny;
int search(int x,int y);
int main(){
cin>>n>>mm;
for(int i=1;i<=n;i++){
for(int j=1;j<=mm;j++){
cin>>m[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=mm;j++){
k=search(i,j);
f[i][j]=k;
ans=max(ans,k);
}
}
cout<<ans<<endl;
return 0;
}
int search(int x,int y){
if(f[x][y]>0){
return f[x][y];
}
t=1;
for(int i=0;i<4;i++){
nx=x+dx[i];
ny=y+dy[i];
if(nx>=1&&nx<=n&&ny>=1&&ny<=mm&&m[x][y]<m[nx][ny]){
tmp=search(nx,ny)+1;
t=max(t,tmp);
}
}
f[x][y]=t;
return t;
}
RT
by X_WT @ 2018-12-05 13:14:51
t在搜索的时候是不是会不停地更新……
t=1;之前加上一个int
就是
int t=1;
by X_WT @ 2018-12-05 13:15:43
好吧此贴已经作废(楼主A掉这题了)
by 哇咔咔冲啊 @ 2018-12-09 12:32:22
谢谢大佬(没有作废,因为我换了个法A的)