P9513 [JOI Open 2023] 细胞自动机 / Cell Automaton

题目背景

**译自 [JOI Open 2023](https://contests.ioi-jp.org/open-2023/index.html) T2 「[セルオートマトン](https://s3-ap-northeast-1.amazonaws.com/data.cms.ioi-jp.org/open-2023/cell/2023-open-cell-statement.pdf) / [Cell Automaton](https://s3-ap-northeast-1.amazonaws.com/data.cms.ioi-jp.org/open-2023/cell/2023-open-cell-statement-en.pdf)」**

题目描述

我们有一个充分大的二维网格,网格由从上到下和从左到右的正方形单元格密铺而成。 有一个单元格是坐标原点。令 $(x,y)$ 表示表示从原点向右移动 $x$ 个单元格,再向上移动 $y$ 个单元格所到达的单元格。这里,向左移动 $a$ 个单元格意味着向右移动 $-a$ 个单元格。类似地,向下移动 $a$ 个单元格意味着向上移动 $-a$ 个单元格。 在时刻 $0$,单元格 $(X_1,Y_1),(X_2,Y_2),\ldots,(X_N,Y_N)$ 是黑色的,其余单元格是白色的。 对于 $t=0,1,2,\ldots$,根据单元格在 $t$ 时刻的颜色,单元格在 $t+1$ 时刻的颜色按如下方法确定: - 如果在时刻 $t$ 时单元格是黑色,那么在时刻 $t+1$ 这个单元格变为灰色。 - 如果在时刻 $t$ 时单元格是灰色,那么在时刻 $t+1$ 这个单元格变为白色。 - 如果在时刻 $t$ 时单元格是白色,并且与其相邻的四个单元格(即,与其共边的四个单元格)中至少有一个在时刻 $t$ 是黑色的,那么在时刻 $t+1$ 这个单元格变为黑色。否则,它将在时刻 $t+1$ 保持白色。 你有 $Q$ 次查询。对于第 $j$ 个查询,你应该回答在时刻 $T_j$ 时有多少黑色单元格。 给定在时刻 $0$ 时的单元格颜色信息和查询,写一个程序回答询问。

输入格式

第一行两个整数 $N,Q$。 接下来 $N$ 行,每行两个整数 $X_i,Y_i$。 接下来 $Q$ 行,每行一个整数 $T_j$。

输出格式

输出 $Q$ 行,每行一个整数,表示在时刻 $T_j$ 时有多少黑色单元格。

说明/提示

**【样例解释 #1】** 下图展示了在时刻 $0$ 时的单元格情况。因为有 $2$ 个黑色单元格,所以第一个询问的回答是 $2$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/6mmzh2tq.png) 下图展示了在时刻 $1$ 时的单元格情况。因为有 $8$ 个黑色单元格,所以第二个询问的回答是 $8$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/s5gw87z0.png) 下图展示了在时刻 $2$ 时的单元格情况。因为有 $12$ 个黑色单元格,所以第三个询问的回答是 $12$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/2uavkaeg.png) 这组样例满足子任务 $1,2,6,7$ 的限制。 **【样例解释 #2】** 这组样例满足子任务 $1,2,4,6,7$ 的限制。 **【样例解释 #3】** 这组样例满足子任务 $1,2,6,7$ 的限制。 **【数据范围】** 对于所有数据,满足: - $1\le N\le 10^5$ - $1\le Q\le 5\times 10^5$ - $|X_i|,|Y_i|\le 10^9$ - $(X_i,Y_i)\neq (X_j,Y_j)\ (1\le i < j\le N)$ - $0\le T_j\le 10^9$ - $T_j