Kirie_LingKui @ 2019-11-06 10:51:34
如题所示
这是代码
#include<iostream>
#include<cstring>
using namespace std;
int mx,my,movex[4]={0,0,-1,1},movey[4]={-1,1,0,0};
int map[101][101],times[101][101];
int dfs(int x,int y)
{
if(times[x][y]) return times[x][y];
int maxl=1;
for(int i=0;i<4;i++)
{
int nowx=x+movex[i];
int nowy=y+movey[i];
if(nowx>0&&nowx<=mx&&nowy>0&&nowy<=my&&map[nowx][nowy]<map[x][y])
{
int now=dfs(nowx,nowy)+1;
if(now>maxl) maxl=now;
}
}
return times[x][y]+=maxl;
}
int main()
{
cin>>mx>>my;
memset(times,0,sizeof(times));
for(int i=1;i<=mx;i++)
for(int j=1;j<=my;j++)
cin>>map[i][j];
for(int i=1;i<=mx;i++)
for(int j=1;j<=my;j++)
if(!times[i][j]) dfs(i,j);
int maxxn=0;
for(int i=1;i<=mx;i++)
for(int j=1;j<=my;j++)
if(maxxn<map[i][j])
maxxn=map[i][j];
cout<<maxxn;
return 0;
}
by 微笑的坏坏 @ 2019-11-16 09:43:41
+1
by 微笑的坏坏 @ 2019-11-16 09:44:11
@lk2366817971 不知道哪错了
by pV_equals_nRT @ 2019-11-16 10:34:03
+1
by Kirie_LingKui @ 2019-11-16 13:12:15
@微笑的坏坏 (现在我已经AC了