40分求调WA
查看原帖
40分求调WA
1270926
wawatime1楼主2024/9/25 17:49
#include <bits/stdc++.h>
using namespace std;
char a [100][100];
bool v [100][100];
int n, m, f = 0, dx [4] = {0, 0, 1, -1}, dy [4] = {-1, 1, 0, 0};

void dfs (int d, int x, int y) {
	if (x == n && y == m) {
		cout << "Yes"; 
		f = 1;
		return;
	} else {
		for (int i = 0; i < 4; i++){
			int nx = x + dx [i];
			int ny = y + dy [i];
			if (v [nx][ny] == 0 && a [nx][ny] == 0 && nx > 0 && nx <= n && ny > 0 && ny <= m && a [nx][ny] == '.') {
				v [nx][ny] = 1;
				dfs (d + 1, nx, ny);
				v [nx][ny] = 0;
			}
		}
	}
}

int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++)
			cin >> a [i][j];
	}
	v [0][0] = 1;
	dfs (0, 1, 1);
	if (f == 0)
		cout << "No";

	return 0;
}
2024/9/25 17:49
加载中...