#T1419. 小 Z 开锁(Unlocking the Lock)
0
小 Z 开锁(Unlocking the Lock)
小 Z 开锁(Unlocking the Lock)
题目描述
现在有一种新型锁,该锁是 的矩阵,锁中有 个凸起的格子和 个被按下的格子,当且仅当两个格子有公共边时,称这两个格子时相邻的。
如下图所示,我们用红色填充的格子表示被按下的格子,没有填充的格子表示凸起的格子。
现在,小 Z 每一次操作只能交换两个相邻的格子,在知道初始状态和目标状态的锁之后,问小 Z 最少操作几次,才能打开这把锁。
- 打开锁,即将初始状态的锁变成目标状态。
输入格式
第 行为一个 行 列的 矩阵,表示初始锁的状态, 表示凸起格子, 表示被按下。
接下来有一个空行。
第 行为一个 行 列的 矩阵,表示目标锁的状态, 表示凸起格子, 表示被按下。
输出格式
一行一个整数表示最少操作次数。数据保证一定有解。
样例输入 #1
1111
0000
1110
0010
1010
0101
1010
0101
样例输出 #1
4
数据范围
详见题目描述与输入格式中的数据规模约定。
知识点与难度
本题涉及的知识点从属于 CSP-J,难度(CF Rating):1300。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 25 | 2~8 | 小规模与边界测试数据 |
| 2 | 30 | 9~16 | 中等规模测试数据 |
| 3 | 35 | 17~25 | 满规模极限测试数据 |
出处:原题链接