RE求解,样例能过,望大神指导

P1434 [SHOI2002] 滑雪

wenchuang @ 2024-11-20 19:32:25

RE求解,样例能过,望大神指导

#include<bits/stdc++.h>
using namespace std;
int a[10005][10005];
int h,z,n=0,MAX=0;
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
void dfs(int n,int x,int y){
    if(MAX<n){
        MAX=n;
    }
    for(int i=0;i<4;i++){
        int xx=x+dx[i];
        int yy=y+dy[i];
        if(a[x][y]>a[xx][yy]&&xx<h&&xx>=0&&yy<z&&yy>=0){
            n++;
            dfs(n,xx,yy);
            n--;
        }
    }
}
int main(){
    scanf("%d %d",&h,&z);
    for(int i=0;i<h;i++){
        for(int j=0;j<z;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(int i=0;i<h;i++){
        for(int j=0;j<z;j++){
            dfs(1,i,j);
        }
    }
    printf("%d",MAX);
}

by Hf_Poem @ 2024-11-20 19:41:39

@wenchuang

数组开的过大了,二维数组不建议超过 2500\times2500

这个题开到 200\times200 足够了哦。

另外您代码还T一个点啊(((

求关注喵喵喵喵喵喵喵喵喵喵


by Hf_Poem @ 2024-11-20 19:42:47

@wenchuang

哦这个题要记忆化的,不加记忆化肯定会 T 飞的呀。


by Yzmddsw @ 2024-11-20 19:44:14

@Hf_Poem 去做题


by Hf_Poem @ 2024-11-20 19:46:25

@Yzmddsw

不要。


|