琵琶行 @ 2021-03-15 13:23:17
上代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m,a[105][105],flag[105][105],maxx,t1,t2,t3,t4;
int dfs(int x,int y,int ans)
{
if(flag[x][y]!=0)
return flag[x][y];
t1=0,t2=0,t3=0,t4=0;
if(a[x][y+1]!=-1&&a[x][y]>a[x][y+1])
t1=dfs(x,y+1,ans+1);
if(a[x][y-1]!=-1&&a[x][y]>a[x][y-1])
t2=dfs(x,y-1,ans+1);
if(a[x+1][y]!=-1&&a[x][y]>a[x+1][y])
t3=dfs(x+1,y,ans+1);
if(a[x-1][y]!=-1&&a[x][y]>a[x-1][y])
t4=dfs(x-1,y,ans+1);
flag[x][y]=max(flag[x][y],max(t1,max(t2,max(t3,t4))))+1;
return flag[x][y];
}
int main()
{
cin>>n>>m;
memset(a,-1,sizeof(a));
memset(flag,0,sizeof(flag));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
dfs(i,j,1);
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
maxx=max(maxx,flag[i][j]);
}
}
cout<<maxx;
return 0;
}
by 琵琶行 @ 2021-03-15 13:23:44
卡了3天了啊啊啊啊
by Lgx_Q @ 2021-03-26 12:29:40
巴啦啦小魔仙