样例过了,提交wa了,求助大佬
查看原帖
样例过了,提交wa了,求助大佬
638882
qiuqiuyaq楼主2022/10/31 23:01
#include <iostream>

using namespace std;

const int N = 510;
int n, m;

bool st[N][N];

char g[N][N];

int dx[] = { -1,0,1,0 }, dy[] = { 0,1,0,-1 };
//家 鱼店
int xa, ya, xb, yb;


bool dfs(int x, int y)
{
    if (x == xb && y == yb) return true;

    if (g[x][y] == '#') return false;
    st[x][y] = true;
    for (int i = 0; i < 4; i++)
    {
        int a = x + dx[i], b = y + dy[i];
        if (a < 0 || a >= n || b < 0 || b >= n)
            continue;
        if (st[a][b]) continue;
        if (dfs(a, b)) return true;

    }
    return false;

}

int main()
{
    cin >> n >> m;

    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
        {
            cin >> g[i][j];
            if (g[i][j] == 's')
            {
                xa = i;
                ya = j;
            }
            if (g[i][j] == 'g')
            {
                xb = i;
                ya = j;
            }
        }

    if (dfs(xa, ya)) cout << "Yes";
    else cout << "No" ;
    return 0;
}


2022/10/31 23:01
加载中...