第二个点超时了
下面是代码,求大犇教一下
谢谢你!好心人。
#include<bits/stdc++.h>
using namespace std;
int r,c,a[110][110],ans;
bool dp[110][110];
int xx[4]={-1,1,0,0};
int yy[4]={0,0,-1,1};
int dfs(int x,int y){
if(dp[x][y>0]){
return dp[x][y];
}
int maxn=1;
for(int i=0;i<4;i++){
int dx=xx[i]+x;
int dy=yy[i]+y;
if(dx>=1 && dx<=r && dy>=1 && dy<=c && a[dx][dy]<a[x][y]){
maxn=max(maxn,dfs(dx,dy)+1);
}
}
return maxn;
}
int main(){
cin>>r>>c;
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
ans=max(ans,dfs(i,j));
}
}
cout<<ans;
return 0;
}