C++,#7,8,9WA,70分求调
查看原帖
C++,#7,8,9WA,70分求调
728483
wwwidk1234楼主2023/1/13 17:10

RT,用的dfs算法,7、8、9 三个点WA,源代码:

#include<bits/stdc++.h>
using namespace std;
int n, m;
char Map[103][103];
int cnt;
int dx[] = {0, 0, 1, -1, -1, 1, 1, -1};
int dy[] = {1, -1, 0, 0, 1, 1, -1, -1};
void dfs(int x, int y) {
	for (int i = 0; i < 7; i++) {
		int X = x + dx[i];
		int Y = y + dy[i];
		if (X < 0 || X >= n || Y < 0 || Y >= m) {
			continue;
		}
		if (Map[X][Y] == '.') {
			continue;
		}
		Map[X][Y] = '.';
		dfs(X, Y);
	}
}
int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> Map[i];
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (Map[i][j] == 'W') {
				Map[i][j] = '.';
				dfs(i, j);
				cnt++;
			}
		}
	}
	return printf("%d", cnt) * 0;
}

附上第七题数据,P1569_7.in

30 30
...........W.W....W.W......WWW
..WWWW..WWW.....W.....W....W.W
..W.......W.......W.W.WW......
.W...WW.W.......W......WW.....
..WWW.............W......WW...
.W...W.......W..W.W.W.....W...
...WW..W..WWW...WW............
W........W.......W...W..W.....
..W.....................WW..W.
.W.....W.W.....WW.......WW..W.
W....W..W....W.W.W..W....W....
.....WWW...W.W.W.WW.....WW.W..
WW..W....W.W..W..W.W...W......
.W.WW..W...W....W..W..W.......
.W..W..W..W..WW..WW.......WWW.
.....WWW......WW.W..WW..W.W...
W.W..W..W..W.......WWW.WW.W.W.
...W...W.WW...W........W..WW..
....W..W....WW.........W...W.W
WWW.......W.......W...W.WWW...
W.......W.....W.WW.W....WW..WW
W.W..WWW....WW........W.W.....
W.W..W.WW...W............WW.W.
.W.W..W...W...WW.WW.W....W.WW.
.WW.W......W...W...WW..W.W....
..W...W..W..W.W.WWWW..W..W..W.
W.W.WW.....WWWW.W...WWW.....W.
WW..........W.......WWW..WWWW.
W.WWWW...WWW.W.WW..W.W.W...WW.
...W..W.....WWWW..W....W..W...

输出4646,我的答案为4949,有dalao知道是为什么吗? (话说这markdown怎么换行...)

2023/1/13 17:10
加载中...