本地样例全过,AT测试大红大紫,请问怎么了
查看原帖
本地样例全过,AT测试大红大紫,请问怎么了
277757
hanyuchen2019楼主2021/8/5 18:52
#include<iostream>
#include<cstdio>
#define reg register int
using namespace std;
int n,m,x1,y1,x2,y2;
bool p[505][505],fin;
void dfs(int x,int y)
{
	if(x==x2&&y==y2)
	{
		fin=true;
		return;
	}
	if(x<1||y<1||x>n||y>m||p[x][y])
		return;
	p[x][y]=1;
	dfs(x-1,y);dfs(x+1,y);dfs(x,y-1);dfs(x,y+1);
}
int mget(int x,int y)//读入函数
{
	char c=getchar();
	while(c<=32)c=getchar();//过滤回车
	if(c=='s')x1=x,y1=y;
	else if(c=='g')x2=x,y2=y;
	else p[x][y]=(c=='.'?0:1);
}
int main()
{
	cin>>n>>m;
	for(reg i=1;i<=n;i++)
		for(reg j=1;j<=m;j++)
			mget(i,j);
	dfs(x1,y1);
	if(fin)
		cout<<"Yes"<<endl;
	else
		cout<<"NO"<<endl;
	return 0;
}

求助qwq我菜到DFS都不会了???

2021/8/5 18:52
加载中...