#P16514. [GKS 2015 #D] Dynamic Grid

[GKS 2015 #D] Dynamic Grid

题目描述

我们有一个 RRCC 列的网格,其中每个格子的值要么是 00,要么是 11。我们将在该网格上执行 NN 次操作,每次操作是以下两种之一:

  • 操作 M:将网格中某一格子的数字改为 0011
  • 操作 Q:求出由 11 构成的不同连通区域的个数。一个由 11 构成的连通区域是指一个全为 11 的格子子集,其中该区域内的任意一个格子都可以通过沿着边(而非角)在格子间移动,到达该区域内的任意其他格子。

输入格式

输入的第一行给出测试用例的数量 TT。接下来是 TT 个测试用例。每个测试用例首先是一行包含两个整数 RRCC,表示网格的行数和列数。然后有 RR 行,每行包含 CC 个字符,每个字符要么是 0,要么是 1。这些行表示网格的初始状态。

接下来一行包含一个整数 NN,表示要在网格上执行的操作次数。再接下来的 NN 行,每行描述一次操作。所有操作 M 的格式均为 M x y z,表示将第 xx 行第 yy 列的格子改为值 zz。所有操作 Q 的格式均为 Q

输出格式

对于每个测试用例,首先输出一行 Case #x:,其中 xx 是测试用例编号(从 11 开始)。然后,对于该测试用例中的每一个操作 Q,按其出现顺序,输出一行包含当前由 11 构成的连通区域的数量。

1
4 4
0101
0010
0100
1111 7
Q
M 0 2 1 
Q
M 2 2 0 
Q
M 2 1 0 
Q
Case #1: 
4
2
2
2

提示

限制

  • 1T101 \le T \le 10
  • 1R,C1001 \le R, C \le 100
  • 0x<R0 \le x < R
  • 0y<C0 \le y < C
  • 0z10 \le z \le 1

小数据集(测试集 1 - 可见)

  • 1N101 \le N \le 10

大数据集(测试集 2 - 隐藏)

  • 1N10001 \le N \le 1000

翻译由 DeepSeek V4 Pro 完成