为什么!90分!就差一个测试点WA...
#include<bits/stdc++.h>
using namespace std;
const int N=101;
int m[N][N],f[N][N];
int dx[5]={0,-1,0,1,0},dy[5]={0,0,1,0,-1};
int r,c,t,tmp,ans,h,nx,ny;
int search(int x,int y){
if(f[x][y]>0) return f[x][y];
h=1;
for(int i=1;i<=4;i++){
nx=x+dx[i];
ny=y+dy[i];
if(nx>=1&&nx<=r&&ny>=1&&ny<=c&&m[x][y]<m[nx][ny]){
tmp=search(nx,ny)+1;
if(tmp>h) h=tmp;
}
}
f[x][y]=h;
return h;
}
int main(){
cin>>r>>c;
ans=INT_MIN;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>m[i][j];
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++){
t=search(i,j);
f[i][j]=t;
if(t>ans) ans=t;
}
cout<<ans<<endl;
return 0;
}
还有很多要优化的地方但是为什么通不过呢?求助...