#P2893. M × N Puzzle

M × N Puzzle

Eight Puzzle 可解性判定

题目描述

EightPuzzleEight Puzzle 与其他滑动图块谜题一起,是人工智能中著名的问题之一。它与国际象棋、井字棋和西洋双陆棋一起被用于研究搜索算法。

88 个谜题可以概括为 M×NM × N 谜题,其中 MMNN 中至少有一个是奇数。该拼图由 MN1MN − 1 个滑动图块构成,每个图块上都有一个从 11MN1MN − 1 的数字,装在一个 MxNM x N 框架中,缺少一个图块。例如,当 M=4M = 4N=3N = 3 时,拼图可能如下所示:

11 66 22
44 00 33
77 55 99

1010 88 1111

我们将缺失的瓦片称为 00。唯一合法的作是交换 00 和与其共享一条边的瓦片。该拼图的目标是找到一系列合法作,使其看起来像:

11 22 33
44 55 66
77 88 99
1010 1111 00

输入输出格式

输入格式

输入由多个测试用例组成。每个测试用例都以包含 MMNN (2M,N999)(2 ≤ M, N ≤ 999) 的行开头。这一行后面是 MM 行,包含 NN 个数字,每个数字描述一个 M×NM × N 个谜题。

START16240375910811DOWN⇒10246375910811LEFT⇒12046375910811UP⇒12346075910811
RIGHT⇒12340675910811UP⇒12345670910811UP⇒12345678910011LEFT⇒12345678910110GOAL
输入以一对 $0$ 结尾。

输出格式

为每个测试用例输出一行,如果可以解决难题,则包含一个单词 YESYES,否则为 NONO

示例

输入样例

3 3
1 0 3
4 2 5
7 8 6
4 3
1 2 5
4 6 9
11 8 10
3 7 0
0 0

输出样例

YES
NO

题目来源

POJPOJ 月刊--2006.07.302006.07.30newton88518newton88518