AT_masters_qual_a Smoothing by Swaps
题目描述
有一个 $N \times N$ 的棋盘。棋盘的左上角坐标是 $(0,0)$,从这个位置向下移动 $i$ 格、向右移动 $j$ 格的格子坐标为 $(i,j)$。整个棋盘的边缘是围墙,并且在某些相邻格子之间也可能有墙。两个格子如果紧挨且之间没有墙,我们称它们为「相邻格子」。
每个格子 $(i,j)$ 上都有一个从 $1$ 到 $N^2$ 的不重复数字 $a_{(i,j)}$。高桥君和青木君可以从棋盘上的任意位置开始,进行最多 $4N^2$ 次以下操作:
1. 他们可以在当前格子交换各自的数字。
2. 高桥君可以移动到相邻的无墙格子。
3. 青木君也可以移动到相邻的无墙格子。
这些操作按照 $1 \rightarrow 2 \rightarrow 3$ 的顺序依次进行,并视为一个完整的操作。可以选择在不交换数字的情况下直接移动,或者在交换后不移动。两人也可以同时在同一个格子上。
请合理地设计两人的行动方案,使最终相邻格子上数字的差尽量小。
输入格式
输入为标准输入,格式如下:
> $t$ $N$ $v_{0,0} \cdots v_{0,N-2}$ $\vdots$ $v_{N-1,0} \cdots v_{N-1,N-2}$ $h_{0,0} \cdots h_{0,N-1}$ $\vdots$ $h_{N-2,0} \cdots h_{N-2,N-1}$ $a_{0,0} \cdots a_{0,N-1}$ $\vdots$ $a_{N-1,0} \cdots a_{N-1,N-1}$
- $t$ 表示输入生成方式,为 $0 \leq t \leq 19$ 的整数,详情请参阅相关部分。
- 棋盘大小 $N$ 满足 $10 \leq N \leq 100$。
- $v_{i,0} \cdots v_{i,N-2}$ 是由 `0` 和 `1` 组成的 $N-1$ 个字符的字符串,若 $v_{i,j}=1$ 表示 $(i,j)$ 与 $(i,j+1)$ 之间有墙,$v_{i,j}=0$ 没有墙。
- $h_{i,0} \cdots h_{i,N-1}$ 是一个长度为 $N$ 的字符串,同样由 `0` 和 `1` 组成,$h_{i,j}=1$ 表示 $(i,j)$ 和 $(i+1,j)$ 之间有墙,$h_{i,j}=0$ 无墙。
- 保证所有格子间相互可达。
- $a_{i,j}$ 表示初始状态下格子 $(i,j)$ 上的数字,满足 $1 \leq a_{i,j} \leq N^2$。
输出格式
首先,选择高桥君的初始位置 $(p_i, p_j)$ 和青木君的初始位置 $(q_i, q_j)$,然后在一行输出这两个位置:
> $p_i$ $p_j$ $q_i$ $q_j$
初始位置可以在棋盘范围内任意选择。
接着,对于每个操作,以如下格式输出一行,共 $k$ 行:
> $s$ $d$ $e$
- $s$ 是一个字符,表示是否交换数字,`1` 为交换,`0` 为不交换。
- $d$ 是表示高桥君移动方向的字符:向上、下、左、右分别为 `U` `D` `L` `R`,不移动为 `.`。
- $e$ 是表示青木君移动方向的字符,与高桥君的相同规则。
移动如果导致越过墙壁或操作次数超过 $4N^2$,将会判定为错误(WA)。
说明/提示
为评估最终结果,设所有相邻格子对的集合为 $E$,我们关注相邻格子间数字差异的平方和 $\sum_{u,v \in E} (a_u - a_v)^2$。设初始状态下的平方和为 $D'$,最终状态下为 $D$,得分公式如下:
\[
\max\left(1, \mathrm{round}\left(10^6 \times \log_2 \frac{D'}{D}\right)\right)
\]
共有 200 个测试用例,每个 $t \in \{0, 1, \cdots, 19\}$ 各 10 个,测试总得分为所有用例得分之和。每个 $t$ 值构成的测试集独立评分,输出格式错误或超时将导致该测试集得分为 0。比赛期间所得最高得分将决定最终排名,无系统测试。相同得分者排名并列。
生成 $a$ 以外输入是固定的,由输入生成种子值模 20 决定,见输入生成器的 `in_fixed/t.txt`。每个 $t$ 值测试用例各 $10$ 个。每个格子的数字 $a_{i,j}$ 是通过随机排列 $1$ 到 $N^2$ 生成的。
### 工具(输入生成器和得分计算程序)
- [源代码](https://img.atcoder.jp/masters-qual/ak2uQT08.zip):需安装 Rust 编译环境。
- [Windows 二进制文件](https://img.atcoder.jp/masters-qual/ak2uQT08_windows.zip):不愿配置 Rust 时的替代选择。
注意:比赛期间禁止分享可视化结果或讨论算法和思路。
**本翻译由 AI 自动生成**