luogu#P9513. [JOI Open 2023] 细胞自动机

[JOI Open 2023] 细胞自动机

题目背景

译自 JOI Open 2023 T2 「セルオートマトン / Cell Automaton

题目描述

我们有一个充分大的二维网格,网格由从上到下和从左到右的正方形单元格密铺而成。

有一个单元格是坐标原点。令 (x,y)(x,y) 表示表示从原点向右移动 xx 个单元格,再向上移动 yy 个单元格所到达的单元格。这里,向左移动 aa 个单元格意味着向右移动 a-a 个单元格。类似地,向下移动 aa 个单元格意味着向上移动 a-a 个单元格。

在时刻 00,单元格 (X1,Y1),(X2,Y2),,(XN,YN)(X_1,Y_1),(X_2,Y_2),\ldots,(X_N,Y_N) 是黑色的,其余单元格是白色的。

对于 t=0,1,2,t=0,1,2,\ldots,根据单元格在 tt 时刻的颜色,单元格在 t+1t+1 时刻的颜色按如下方法确定:

  • 如果在时刻 tt 时单元格是黑色,那么在时刻 t+1t+1 这个单元格变为灰色。
  • 如果在时刻 tt 时单元格是灰色,那么在时刻 t+1t+1 这个单元格变为白色。
  • 如果在时刻 tt 时单元格是白色,并且与其相邻的四个单元格(即,与其共边的四个单元格)中至少有一个在时刻 tt 是黑色的,那么在时刻 t+1t+1 这个单元格变为黑色。否则,它将在时刻 t+1t+1 保持白色。

你有 QQ 次查询。对于第 jj 个查询,你应该回答在时刻 TjT_j 时有多少黑色单元格。

给定在时刻 00 时的单元格颜色信息和查询,写一个程序回答询问。

输入格式

第一行两个整数 N,QN,Q

接下来 NN 行,每行两个整数 Xi,YiX_i,Y_i

接下来 QQ 行,每行一个整数 TjT_j

输出格式

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

2 3
0 2
1 0
0
1
2

2
8
12

3 5
0 0
2 2
5 5
0
1
2
3
4

3
12
21
24
26

4 10
-3 -3
3 3
-4 4
4 -4
0
1
2
3
4
5
6
7
8
9

4
16
32
48
56
56
55
56
60
64

提示

【样例解释 #1】

下图展示了在时刻 00 时的单元格情况。因为有 22 个黑色单元格,所以第一个询问的回答是 22

下图展示了在时刻 11 时的单元格情况。因为有 88 个黑色单元格,所以第二个询问的回答是 88

下图展示了在时刻 22 时的单元格情况。因为有 1212 个黑色单元格,所以第三个询问的回答是 1212

这组样例满足子任务 1,2,6,71,2,6,7 的限制。

【样例解释 #2】

这组样例满足子任务 1,2,4,6,71,2,4,6,7 的限制。

【样例解释 #3】

这组样例满足子任务 1,2,6,71,2,6,7 的限制。

【数据范围】

对于所有数据,满足:

  • 1N1051\le N\le 10^5
  • 1Q5×1051\le Q\le 5\times 10^5
  • Xi,Yi109|X_i|,|Y_i|\le 10^9
  • (Xi,Yi)(Xj,Yj) (1i<jN)(X_i,Y_i)\neq (X_j,Y_j)\ (1\le i < j\le N)
  • 0Tj1090\le T_j\le 10^9
  • Tj<Tj+1T_j<T_{j+1}

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 $\lvert X_i\rvert ,\lvert Y_i\rvert \le 50,T_j\le 50$ 44
22 $\lvert X_i\rvert ,\lvert Y_i\rvert \le 1\ 000,T_j\le 1\ 000$ 1212
33 Xi=Yi,Q=1X_i=Y_i,Q=1 88
44 Xi=YiX_i=Y_i
55 N2 000,Q=1N\le 2\ 000,Q=1 1717
66 N2 000N\le 2\ 000 2525
77 无附加限制 2626