gaojizhe05 @ 2023-11-13 21:16:05
P1434只有80分,希望各位大佬指教,谢谢!
#include<bits/stdc++.h>
using namespace std;
int r,c;
int a[105][105],b[105][105];
const int g[5][2]={{0,0},{1,0},{-1,0},{0,1},{0,-1}};
int ans=-1;
void Init(){
cin>>r>>c;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>a[i][j];
}
int Do(int x,int y){
//cout<<x<<' '<<y<<endl;
if(b[x][y]>0) return b[x][y];
int cnt=0;
for(int i=1;i<=4;i++){
int nowx=x+g[i][0],nowy=y+g[i][1];
if(nowx>=1&&nowx<=r&&nowy>=1&&nowy<=c&&a[nowx][nowy]<a[x][y]){
b[x][y]=max(b[x][y],Do(nowx,nowy)+1);
cnt++;
}
}
if(cnt==0)
return 1;
else return b[x][y];
}
void Work(){
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
int f=Do(i,j);
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
ans=max(ans,b[i][j]);
cout<<ans;
}
int main(){
Init();
Work();
return 0;
}
by qnqfff @ 2023-11-13 21:20:11
if(cnt==0)
return 1;
--->
if(cnt==0){
b[x][y]=1;
return 1;
}
by qnqfff @ 2023-11-13 21:21:24
@gaojizhe05
by gaojizhe05 @ 2023-11-13 21:23:38
真过了!!!感谢大佬,送大佬一个关注!!!