AT_arc226_e [ARC226E] Cellular Messenger
题目描述
Snuke 希望设计一个能够传递二进制序列的元胞自动机。这一序列会在 $N$ 个回合内被写入某个单元格,并需要被传递到远处的单元格。
## 1. 网格
有一个无限大的网格。每个单元格的状态为 $0$ 或 $1$。
令某一行作为第 $0$ 行,某一列作为第 $0$ 列,行号向下递增 $1$,列号向右递增 $1$。$(r,c)$ 表示第 $r$ 行第 $c$ 列的单元格坐标。单元格的分布如下图所示。

某一单元格的相邻单元格,指与该格共享边或顶点的八个单元格。
你可以选择一个矩形区域,其需满足以下条件,并自由设置该区域内所有单元格的初始状态:
- 高度 $H$ 和宽度 $W$ 均在 $1$ 到 $150$ 之间(含端点)。
- 左上角单元格的坐标为 $(0,0)$。
该区域之外所有单元格的初始状态均为 $0$。
## 2. 更新操作
你需要为每个 $i=0,1$ 以及 $j=0,1,\ldots,8$ 决定一个 $F_{i,j}$ 的值,$F_{i,j}$ 取 $0$ 或 $1$,并将这些作为**更新规则**。但要求 $F_{0,0}=0$。
在**更新操作**中,所有单元格的状态会被同步更新。对于给定单元格,其当前状态为 $i$,其八个相邻单元格状态之和为 $j$,则更新后其新状态为 $F_{i,j}$。
## 3. 设计自动机
你需要决定并输出如下数值:
- 更新规则 $F_{i,j}$ ($i=0,1$,$0 \le j \le 8$)
- 要满足 $F_{0,0}=0$。
- 初始状态矩形区域的高度 $H$ 与宽度 $W$。
- $1 \le H,W \le 150$。
- 该区域内的初始状态 $A_{r,c}$ ($0 \le r < H$,$0 \le c < W$)
- 发送单元格 $(R_s,C_s)$ 与接收单元格 $(R_t,C_t)$ 的坐标
- $0 \le R_s,R_t < H$,$0 \le C_s,C_t < W$
- $50 \le |C_s-C_t| \le 100$
- 传输延时 $D$
- 必须保证对于在第 $k$ 回合写入发送单元的值,可以在第 $k+D-1$ 回合读到该值于接收单元。
- $50 \le D \le 100$
## 4. 判题方式
判题方式如下:
1. 随机选定正整数 $N$ 和长度为 $N$ 的二进制序列 $S=(S_1,S_2,\ldots,S_N)$,每个测试点这两者固定。
2. 接收你输出的自动机设计。
3. 初始化空序列 $T$,并进行 $N+D-1$ 次回合模拟。具体来说,对每一个 $k=1,2,\ldots,N+D-1$,按顺序进行以下步骤:
1. 如果 $k \le N$,则把发送单元 $(R_s,C_s)$ 的状态改为 $S_k$。
2. 对网格进行一次更新操作。
3. 如果 $D \le k < D+N$,则将接收单元 $(R_t,C_t)$ 的状态加入 $T$ 序列末尾。
4. 若模拟结束后,$S=T$,则判为正确输出,否则判为错误。
保证无论 $N$ 和 $S$ 为何,均存在一种能够始终判定正确的自动机设计。但由于本题评测实现细节,$N$ 和 $S$ 在每个测试点文件中是固定的,且只会评测 $N \le 300$ 的情况。
输入格式
本题无输入。
输出格式
请按如下格式输出:
> $F_{0,0}F_{0,1}\ldots F_{0,8}$ $F_{1,0}F_{1,1}\ldots F_{1,8}$ $H$ $W$ $A_{0,0}A_{0,1}\ldots A_{0,W-1}$
> $A_{1,0}A_{1,1}\ldots A_{1,W-1}$
> $\vdots$
> $A_{H-1,0}A_{H-1,1}\ldots A_{H-1,W-1}$
> $R_s$ $C_s$ $R_t$ $C_t$ $D$
你的输出必须满足以下条件:
- $F_{i,j} \in \{0,1\}$
- $F_{0,0}=0$
- $1 \le H,W \le 150$
- $A_{r,c} \in \{0,1\}$
- $0 \le R_s,R_t < H$
- $0 \le C_s,C_t < W$
- $50 \le |C_s-C_t| \le 100$
- $50 \le D \le 100$
如果你的输出满足上述所有条件,并通过判题方式测试所有测试点,则本题判为通过。
说明/提示
## 可视化工具
你可以使用 [Visualizer](https://img.atcoder.jp/arc226/d6db7b23c48a5b0d7f696e474dcc3233.html) 检查你的自动机行为。
## 样例解释 1
此样例输出仅用于说明输出格式。对于 $N=1$ 时,对所有 $S$ 均正确。但当 $2 \le N$ 时,存在 $S$ 使其输出不正确。
## 数据范围
- 判题所用 $N$ 满足 $1 \le N \le 300$。
由 ChatGPT 5 翻译