#P14537. [OII 2025] 双色金字塔 / Piramide bicolore

[OII 2025] 双色金字塔 / Piramide bicolore

题目背景

译自 Italian Olympiad in Informatics (OII) 2025 - Piramide bicolore

建造 OII 纪念金字塔的准备工作一切就绪,现在轮到 Nicoletta 向乌迪内市议会提交项目方案了。

题目描述

金字塔由黑色和白色的立方体构成。为了加快进度,项目按以下方式执行:

  1. 首先,Nicoletta 将设计底座(第 00 层):这一层是一个 N×NN \times N 的立方体方阵,其颜色可以用矩阵 MM 描述。具体来说,如果 Mi,j=1M_{i,j} = 1(i,j)(i, j) 上的立方体就是黑色,否则是白色的。
  2. 然后,她将继续建造第 11 层到第 N1N - 1 层。第 ii 层的每个立方体都恰好位于其下方四个立方体的公共顶点之上。如果在它下方的四个立方体中,相邻的立方体都不同色,这个立方体就是黑色,否则是白色的。

:::align{center} Figure 1
图 1:Nicoletta 提出的金字塔方案之一。 :::

市议会对该项目仍不完全信服,并希望获得有关金字塔最终外观的更多信息。为了更清楚地了解情况,议会决定向 Nicoletta 提出 QQ 个问题:在每个问题中,他们会询问位于第 hh 层、位置 (x,y)(x, y) 的立方体是什么颜色。

金字塔中的立方体可由一个三元组 (h,x,y)(h, x, y) 表示,其中 0h<N0 \le h < N 是立方体的层数,0x,y<Nh0 \le x, y < N - h 是其在层内的坐标。特别地,立方体 (h,x,y)(h, x, y) 恰好位于其下方四个立方体的公共顶点之上:(h1,x,y)(h - 1, x, y)(h1,x+1,y)(h - 1, x + 1, y)(h1,x,y+1)(h - 1, x, y + 1)(h1,x+1,y+1)(h - 1, x + 1, y + 1)。在样例解释中你可以看到一个示例。

实现方式

附件中包含一个实现示例 concessione.cpp

你需要实现如下函数:

void init(int N, vector<string> M);
  • NN:金字塔的大小。
  • MM:二维数组,每一维下标从 00N1N - 1,表示金字塔的第 00 层(底座)。
  • 对于每个测试点,该函数都只会被调用一次。
bool query(int h, int x, int y);
  • 整数 h,x,yh,x,y 表示立方体的位置是 (h,x,y)(h,x,y)
  • 如果位置 (h,x,y)(h, x, y) 上的立方体是黑色的,则该函数需要返回 true;否则返回 false
  • 对于每个测试点,该函数将被调用 QQ 次。

输入格式

评测程序的输入格式如下:

  • 11 行:两个整数 NNQQ
  • 2+i2 + i 行(0i<N0 \le i < N):一个只包含字符 01 的字符串 SS,表示 Mi,j=SjM_{i,j} = S_j
  • 2+N+i2 + N + i 行(0i<Q0 \le i < Q):三个整数 hi,xi,yih_i, x_i, y_i

输出格式

评测程序的输出格式如下:

输出包含 QQ 行,内容为 query 函数返回的值。

4 6
0111
1010
1101
0110
1 0 0
2 0 1
2 0 0
2 1 1
3 0 0
1 1 2
1
0
1
0
0
1

提示

【样例解释】

该图展示了第一个样例:

Sample Explanation

位置 (1,0,0)(1, 0, 0) 上的立方体是黑色的,因为它下方的四个立方体中,相邻的立方体都不同色。
位置 (2,0,1)(2, 0, 1) 上的立方体是白色的,因为它下方的立方体 (1,0,1)(1, 0, 1)(1,0,2)(1, 0, 2) 相邻且同色。

【数据范围】

  • 1<N50001 < N \le 5000
  • 1Q1061 \le Q \le 10^6
  • 对于所有的 0i,j<N0 \le i, j < NMi,j{0,1}M_{i,j} \in \{0, 1\}
  • 对于每次询问,1h<N1 \le h < N, 0x,y<Nh0 \le x, y < N - h

【子任务】

子任务编号 分值 约束条件
00 样例
11 1010 N300N \le 300
22 2121 iji \ne jMi,j=0M_{i,j} = 0,即底座中的黑色立方体全在一条对角线上
33 2828 Q=1Q = 1 且仅询问金字塔塔尖的颜色
44 1212 Q100Q \le 100
55 2929 无额外限制