#P2308. Dearboy's Puzzle
Dearboy's Puzzle
题目描述
是一位游戏爱好者。最近,他迷上了玩"连连看"游戏。这个游戏在一个由 个格子组成的棋盘上进行,棋盘上放置着许多卡片。玩家需要找到一对相同的卡片,如果这对卡片之间可以用不超过 条线段连接(且路径不经过其他卡片),就可以将这对卡片从棋盘上移除。(如果对"不超过 条线段"的含义感到困惑,可以参考下图,图中展示了一些允许的连接方式)。重复上述过程,如果能够清除所有卡片,则赢得游戏,否则输掉游戏。
如果你玩过这个游戏,可能会知道有些时候游戏是无解的,玩家注定会输。 对无解的游戏感到非常无聊,于是他向你这位著名的程序员求助,希望你能告诉他给定的游戏局面是否有解。
输入格式
输入包含多个测试用例。每个测试用例的第一行包含两个整数 和 (),表示游戏棋盘的尺寸。接下来的 行给出棋盘的布局,每行包含 个字符。字符可能是以下之一:(表示空格)、、、、(表示卡片,意味着最多有 种不同的卡片)。不同的字母代表不同的卡片。相同卡片的数量可能是奇数,也可能存在多对相同的卡片。
输入以两个 结束。这个测试用例不需要处理。
输出格式
对于每个测试用例,如果 能够赢得游戏,输出一行"",否则输出""。
输入样例
6 8
********
*A**C***
**B*****
***B*D**
****D***
********
2 2
AB
BA
6 8
***A****
*A**C***
**B***C*
***B*D**
****D***
********
0 0
输出样例
no
no
yes
题目来源
POJ月赛 - 王艺杰