求助,样例过不去!
查看原帖
求助,样例过不去!
715774
Little_Andyyu楼主2023/9/27 21:48
#include<bits/stdc++.h>
using namespace std;
int xx[2] = {1, 0}, yy[2] = {0, 1};
int h[1000008][4];
bool a[4008][4008];
bool b = false;
int n, m, x, y, t = 0, w = 1;
char k[505][505];
int main() {
	memset(a, false, sizeof(a));
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> k[i][j];
			if (k[i][j] == '.')a[i][j] = true;
			else a[i][j] = false;
		}
	}
	int p;
	cin >> p;
	for (int i = 0; i <= p - 1; i++) {
		int q, v, s, u;
		cin >> q >> v >> s >> u;
		memset(h, 0, sizeof(h));
		//memset(a,true,sizeof(a));
		h[1][1] = q;
		h[1][2] = v;
		a[q][v] = false;
		b = false;
		while (t < w && b == false) {
			t++;
			for (int i = 0; i < 2; i++) {
				x = h[t][1] + xx[i];
				y = h[t][2] + yy[i];
				if (x > 0 && x <= n && y > 0 && y <= n && a[x][y]) {
					w++;
					h[w][1] = x;
					h[w][2] = y;
					a[x][y] = false;
					if (x == s && y == u) {
						cout << "Yes";
						b = true;
					}
				}
			}
		}
		if (b == false)
			cout << "No" << endl;
	}
	return 0;
}
2023/9/27 21:48
加载中...