0xFF @ 2021-09-10 12:52:18
#include<bits/stdc++.h>
#define maxn 101
using namespace std;
int ans=0,r,c;
int a[maxn][maxn];
int dx[5]={0,1,0,-1,0};
int dy[5]={0,0,1,0,-1};
int dfs(int x,int y,int z){
ans=max(ans,z);
for(int i=1;i<=4;i++){
int n_x=x+dx[i];
int n_y=y+dy[i];
if(n_x>0&&n_x<=r&&n_y>0&&n_y<=c&&a[n_x][n_y]<a[x][y]){
dfs(n_x,n_y,z+1);
}
}
}
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,1));
}
}
cout<<ans<<endl;
return 0;
}
求大佬帮看看为什么会爆0RE
by Coros_Trusds @ 2021-09-10 13:05:29
数组开大一点点就好了
不过必须 dp,搜索会超时。
by 0xFF @ 2021-09-10 13:27:45
@Coros_Trusds 谢谢大佬帮助
by long_int @ 2021-09-10 13:28:17
@蕉雨寒 搜索也可以,但是要记忆化