全WA求调!!!
查看原帖
全WA求调!!!
1112264
YZZCDS楼主2024/7/21 15:35

如题,在使用dfs写的时候,答案结果在本地上运行是正常的,然而提交后不尽人意。

以下为代码。

#include <bits/stdc++.h>
using namespace std;
typedef long long l;
l n, m, ans;
char t;
bool ways[505][505];
l dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, 1, -1};

void dfs(l x, l y) {
	ways[x][y] = 1;
	l tx, ty;
	for (int i = 0; i < 4; i ++) {
		tx = x + dx[i];
		ty = y + dy[i];
		if (tx > 0 && tx <= n && ty > 0 && ty <= m) {
			if (ways[tx][ty] == 0) {
				dfs(tx, ty);
			}
		}
	}
}

int main () {
	cin >> n >> m; 
	for (int i = 1; i <= n; i ++) {
		for (int j = 1; j <= m; j ++) {
			cin >> t;
			if (t == '0') ways[i][j] = 0;
			else ways[i][j] = 1;
		}
	}
	for (int i = 1; i <= n; i ++) {
		if (ways[i][1] == 0) dfs(i, 1);
		if (ways[i][m] == 0) dfs(i, m);
	}
	for (int i = 1; i <= m; i ++) {
		if (ways[1][i] == 0) dfs(1, i);
		if (ways[n][i] == 0) dfs(n, i);
	}
	for (int i = 1; i <= n; i ++) {
		for (int j = 1; j <= n; j ++) {
			if (ways[i][j] == 0) ans ++;
		}
	}
	cout << ans << endl;
	return 0;
}
2024/7/21 15:35
加载中...