样例过了,但是WA
查看原帖
样例过了,但是WA
444236
Lesiris楼主2023/1/31 14:40
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int n,m,qqx,qqy,p,qx,qy;
char a[502][502];
int b[502][502];
inline long long read()
{
    long long x = 0, f = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9')
	{
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9')
	{
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}
void dfs(int x,int y)
{
	b[x][y]=1;
	for(int i=0;i<4;i++)
	{
		int sx=x+dx[i];
		int sy=y+dy[i];
		if(sx>=1&&sx<=m&&sy>=1&&sy<=n&&a[sx][sy]!='#'&&b[sx][sy]==0) 
		{
			if(sx==qx&&sy==qy)
			{
				printf("Yes\n");
				exit(0);
			}
			dfs(sx,sy); 
		}
	}
}
int main()
{
	n=read(),m=read();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
			if(a[i][j]=='s') qqx=i,qqy=j;
			if(a[i][j]=='g') qx=i,qy=j;
		}
	}
	dfs(qqx,qqy);
	printf("No\n");
	return 0;
}

2023/1/31 14:40
加载中...