3219:刘学习的会模糊的卡诺图

时间限制:2 S   /  内存限制:65536 KB
AC:9   /  Submit:12
问题描述

在本题中,一个 “卡诺图” 可以视为一个 n * m 且元素大小仅为 0 或者 1 的矩阵。

刘学习有一个初始卡诺图,他的卡诺图比较神奇,会自发地进行 “模糊” 操作,模糊操作定义如下:

x y 表示将第 x 行 y 列的元素模糊为 0(即原来是 1 则变成 0,原来是 0 则不发生变化)

现给出 q 个操作,对于每个操作,你需要告诉刘学习他的卡诺图在操作后 “由1构成的连通块” 的个数。注意,每次模糊操作进行后不会复原,即你在考虑第 i 个操作时,也要考虑前 i - 1 个操作的效果。

“由 1 构成的连通块” 理解为 “一片相邻的1”,两个 1 相邻指的是其中一个 1 在另一个 1 的正上方、正下方、正左方或正右方一个单位的位置,例如:

对于卡诺图

1 0 1 1 0 1

0 1 1 1 0 1

1 0 0 1 0 0

“由 1 构成的连通块” 的个数为4。

输入描述

第一行两个正整数 n m 描述卡诺图的大小。1 <= n, m <= 1000。

接下来 n 行每行 m 个正整数,每个正整数 0 或 1,用来描述卡诺图的内容。

接下来一行一个正整数 q 表示操作个数。1 <= q <= 100000。

接下来 q 行每行两个正整数 x y 表示对第 x 行 y 列进行模糊操作。

注意,若输入矩阵为

1 0 1 1 0 1

0 1 1 1 0 1

1 0 0 1 0 0

则左上角坐标为(1, 1),右下角坐标为(3, 6)。

输出描述

对于每个操作,你需要告诉刘学习他的卡诺图在操作后 “由1构成的连通块” 的个数,然后换行。

样例输入复制样例

3 6

1 0 1 1 0 1

0 1 1 1 0 1

1 0 0 1 0 0

4

2 2

3 3 

2 4

1 3

样例输出

4

4

5

6

来源
2019网宿杯XMU程序设计竞赛现场赛

Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1