RE是怎么回事?

P1434 [SHOI2002] 滑雪

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

@蕉雨寒 搜索也可以,但是要记忆化


|