dfswa了一个点,求助!
查看原帖
dfswa了一个点,求助!
230857
鹿目圆楼主2021/6/24 08:58
#include<iostream>
using namespace std;
int r,c;
int snow[114][114];
int step[114][114];
bool vis[114][114];
int tox[4]={0,0,-1,1};
int toy[4]={1,-1,0,0};
int maxn;
int maxnn=-1e9;
void dfs(int x,int y,int ans)
{
	for(int i=0;i<4;i++)
	{
		int xx=x+tox[i];
		int yy=y+toy[i];
		if(snow[xx][yy]>=snow[x][y]||xx==0||yy==0) continue;
		if(step[xx][yy]) 
		{
        	maxn=max(maxn,step[xx][yy]+ans);
        	continue;
    	}
		if(xx&&yy) 
		{
			dfs(xx,yy,ans+1);
		}
    }
	maxn=max(maxn,ans);
	return;
} 
int main()
{
    cin>>r>>c;
    for(int i=1;i<=r;i++)
    {
    	for(int j=1;j<=c;j++)
    	{
    		cin>>snow[i][j];
		}
	}
	for(int i=1;i<=r;i++)
    {
    	for(int j=1;j<=c;j++)
    	{ 
    		maxn=-1e9;
    		dfs(i,j,1);
    		step[i][j]=maxn;
    		if(maxnn<maxn) maxnn=maxn;
		}
	}
	cout<<maxnn;
    return 0;
}
2021/6/24 08:58
加载中...