社区讨论

玄学代码求条

P114101迷宫参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m4o4rfvb
此快照首次捕获于
2024/12/14 20:05
去年
此快照最后确认于
2025/11/04 12:51
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int in()
{
    int t = 0, f = 1;char c = getchar();
    while(c < '0' || c > '9'){if(c == '-')f = -1;c = getchar();}
    while(c >= '0' && c <= '9')t = t * 10 + c - '0', c = getchar();
    return t * f;
}
char c[1005][1005];
int n, m, a[1005][1005];
int flag[1005][1005];
int ans[1005];
int dx[10] = {0, 0, 0, 1, 1};
int dy[10] = {0, 1, 1, 0, 0};
void dfs(int x, int y, int t)
{
	flag[x][y] = t;
	ans[t]++;
	for(int i = 1 ; i <= n ; i++)
	{
		int xx = x + dx[i];
		int yy = y + dy[i];
		if(xx < 1 || xx > n || yy < 1 || yy > n || c[xx][yy] == c[x][y])
			continue;
		dfs(xx, yy, t);
	}

}
int main()
{
	n = in();
	m = in();
	for(int i = 1 ; i <= n ; i++)
		for(int j = 1 ; j <= n ; j++)
			cin >> c[i][j];
	for(int i = 1 ; i <= m ; i++)
	{
		int x, y;
		x = in();
		y = in();
		if(flag[x][y] == 0)dfs(x, y, i);
		cout << ans[flag[x][y]] << endl;
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...