BugGod @ 2022-03-27 11:41:22
#include<iostream>
using namespace std;
int r,c,a[110][110],ans,flag,mx,my,maxx;
const int dx[4]={0,1,0,-1};
const int dy[4]={1,0,-1,0};
void dfs(int x,int y,int step)
{
ans=max(ans,step);
for(int i=0;i<4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(a[xx][yy]<a[x][y]&&a[xx][yy]>maxx&&xx>0&&xx<=r&&yy>0&&yy<=c)
{
maxx=a[xx][yy];
mx=xx;
my=yy;
flag=1;
}
}
if(flag)
{
dfs(mx,my,step+1);
}
else
{
return;
}
}
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++)
{
dfs(i,j,1);
}
}
cout<<ans;
return 0;
}
20scores,MLE on #1,2,3,7,8,9,10.WA on#5
by BugGod @ 2022-03-29 21:40:42
问题解决,此贴终结