#P2346. 四子连棋(Four in a Row)
0
四子连棋(Four in a Row)
四子连棋(Four in a Row)
题目描述
在一个 的棋盘上摆放了 颗棋子,其中有 颗白色棋子, 颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双方交替走棋,任意一方可以先走,如果某个时刻使得任意一种颜色的棋子形成四个一线(包括斜线),这样的状态为目标棋局。

输入格式
从文件中读入一个 的初始棋局,黑棋子用 B 表示,白棋子用 W 表示,空格地带用 O 表示。
输出格式
用最少的步数移动到目标棋局的步数。
样例输入 #1
BWBO
WBWB
BWBW
WBWO
样例输出 #1
5
数据范围
棋盘大小固定为 ,包含 颗黑棋(B)、 颗白棋(W)和 个空格(O)。数据保证有解。
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1700。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 20 | 2~8 | 小步数 1~4步 / 特殊: 初始已四子连线0步 / 特殊: 主副对角线成四子 |
| 2 | 15 | 9~11 | Hack: 必须白棋先手方能最快获胜 / Hack: 两空格相邻连续挪动 / Hack: 10步以上深层状态 |
| 3 | 30 | 12~20 | 中规模 6~9步 / 大规模 10~14步 状态搜索压力 |
| 4 | 25 | 21~25 | 随机 4×4 合法棋局回归 |
出处:原题链接