求助
查看原帖
求助
541254
BugGod楼主2022/3/27 11:41
#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

2022/3/27 11:41
加载中...