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],
就
by char_phi @ 2022-10-20 20:50:02
@Little_Andyyu