求助,为什么RE啦?第4个样例也过不去。。。
查看原帖
求助,为什么RE啦?第4个样例也过不去。。。
533069
Khaleesi楼主2021/7/18 21:36
#include<bits/stdc++.h>
using namespace std;
int dx[5]={0,0,1,-1};
int dy[5]={1,-1,0,0};
int has[502][502];
char a[502][502];
int x,y;
void dfs(int nowx,int nowy)
{	
	
	if(a[nowx][nowy]=='g')
	{
		exit(0);
		cout<<"Yes"<<endl;
	}
	if(a[nowx][nowy]=='#') return;
	has[nowx][nowy]=1;
	for(int i=0;i<=3;i++)
	{
		nowx+=dx[i];
		nowy+=dy[i];
		if(has[nowx][nowy]==0&&nowx<=x-1&&nowy<=y-1&&nowx>=0&&nowy>=0)
		{
			dfs(nowx,nowy);	
		}
		//has[nowx][nowy]=0;
		//nowx-=dx[i];
		//nowy-=dy[i];
		
	}
}
int main()
{
	
	cin>>x>>y;
	int bx;
	int by;
	for(int i=0;i<=x-1;i++)
	{
		for(int j=0;j<=y-1;j++)
		{
			cin>>a[i][j];
			if(a[x][y]=='s')
			{
				bx=i;
				by=j;
			}
		}
	}
	dfs(bx,by);
	printf("%s\n","No");
	return 0;
}
2021/7/18 21:36
加载中...