莫名RE
查看原帖
莫名RE
1122193
FarmerDrone楼主2024/5/21 22:13

不谈复杂度,RE很离奇唉,本地良好

#include <bits/stdc++.h>
using namespace std;

bool vis[1000][1000];
int a[1000][1000];

int dfs(int x, int y)
{
	vis[x][y] = 1;	
	if (a[x][y + 1] == a[x][y] && ! vis[x][y + 1])
		dfs(x, y + 1);
	if (a[x][y - 1] == a[x][y] && ! vis[x][y - 1])
		dfs(x, y - 1);
	if (a[x + 1][y] == a[x][y] && ! vis[x + 1][y])
		dfs(x + 1, y);
	if (a[x - 1][y] == a[x][y] && ! vis[x - 1][y])
		dfs(x - 1, y);
}

int main()
{
	int n, m;
	cin >> n >> m;
	int c, x, y;
	for (int i = 0; i < 600; i++)
		for (int j = 0; j < 600; j++)
			a[i][j] = -1;
	while (m--)
	{
		scanf("%d%d%d", &c, &x, &y);
		a[x + 5][y + 5] = c;
		int ans = 0;
		for (int i = 1 + 5; i <= n + 5; i++)
			for (int j = 1 + 5; j <= n + 5; j++)
				if (a[i][j] != -1 && ! vis[i][j])
				{
					ans++;
					dfs(i, j);
				}
		for (int i = 0; i < 600; i++)
			for (int j = 0; j < 600; j++)
				vis[i][j] = 0;
		cout << ans << "\n";
	}
	return 0;	
}
2024/5/21 22:13
加载中...