AT_arc226_e [ARC226E] Cellular Messenger

题目描述

Snuke 希望设计一个能够传递二进制序列的元胞自动机。这一序列会在 $N$ 个回合内被写入某个单元格,并需要被传递到远处的单元格。 ## 1. 网格 有一个无限大的网格。每个单元格的状态为 $0$ 或 $1$。 令某一行作为第 $0$ 行,某一列作为第 $0$ 列,行号向下递增 $1$,列号向右递增 $1$。$(r,c)$ 表示第 $r$ 行第 $c$ 列的单元格坐标。单元格的分布如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc226_e/630cf583cd5c0d567bfe49a082f0c02932677a4ed61c84cecd428d89943926f8.png) 某一单元格的相邻单元格,指与该格共享边或顶点的八个单元格。 你可以选择一个矩形区域,其需满足以下条件,并自由设置该区域内所有单元格的初始状态: - 高度 $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 翻译