90分,最后一个点出错

P1434 [SHOI2002] 滑雪

Little_Andyyu @ 2022-10-20 20:40:41


#include<bits/stdc++.h>
int dx[5]={0,-1,0,1,0};
int dy[5]={0,0,1,0,-1};
long long v,w,f[100][100],j[100][100],k,x,y,_,q;
int s_ear_ch(int,int);
using namespace std;
int main()
{
    cin>>v>>w;
    q=0;
    for(int i=1;i<=v;i++){
        for(int a=1;a<=w;a++){
            cin>>f[i][a];
        }
    }
    for(int i=1;i<=v;i++){
        for(int a=1;a<=w;a++){
            _=s_ear_ch(i,a);
            j[i][a]=_;
            if(_>q)q=_;
        }
    }
    cout<<q;
    return 0;
}
int s_ear_ch(int a,int z)
{
    int i,t,temple,nx,ny;
    if(j[a][z]>0){
        return (j[a][z]);
    }t=1;
    for(int i=1;i<=4;i++){
        nx=a+dx[i];
        ny=z+dy[i];
        if((nx>=1)&&(nx<=v)&&(ny>=1)&&(ny<=w)&&(f[a][z]<f[nx][ny])){
            temple=s_ear_ch(nx,ny)+1;
            if(temple>t){
                t=temple;
            }
        }
    }
    j[a][z]=t;
    return t;
}

by char_phi @ 2022-10-20 20:49:55

数组不要卡着空间开,f[100][100],j[100][100], 改成 f[105][105],j[105][105],\text{A}


by char_phi @ 2022-10-20 20:50:02

@Little_Andyyu


|