#P2400. Fox And Two Dots

Fox And Two Dots

题目描述

Fox Ciel 最近在手机上玩一个名叫 Two Dots 的游戏,这个游戏是在一个 n×mn\times m 的棋盘上玩的,如下图:

棋盘中的每个小方格中包含有一个点,并且这个点有特定的颜色。我们用大写字母 A 到 Z 来表示不同的颜色。 这个游戏的关键是要找一个有相同颜色的环。例如上图中,有 44 个蓝色点构成了一个环。

我们定义一个序列 d1,d2,,dkd_1,d_2,\cdots,d_k 是一个环,当且仅当满足下列条件:

  1. kk 个点在不同位置,也就是说,对于任何两个点,它们的位置不重复。

  2. k4k\geq 4

  3. 所有点的颜色相同。

  4. 对于所有的 1ik11\leq i\leq k-1did_idi+1d_{i+1} 相邻,当然 d1d_1dkd_k 也是相邻的。定义两个点相邻当且仅当他们有共同的边。

现在你的任务是判断这个棋盘里面是否有满足这种条件的环。

输入格式

输入第一行包含两个正整数 nnmm,表示棋盘中行和列的数量。

接下来 nn 行,每行输入 mm 个大写字符,表示棋盘中每个格子中小点点的颜色。注意是从字符 A 到字符 Z

输出格式

如果有满足条件的环,输出 Yes,否则输出 No

3 4
AAAA
ABCA
AAAA
Yes

在第一个样例中,所有的 A 组成了一个环。

3 4
AAAA
ABCA
AADA
No

在第二个样例中没有满足条件的环。

4 4
YYYR
BYBY
BBBY
BBBY
Yes

第三个样例就是插图的例子。其中 Y 表示黄色,B 表示蓝色,R 表示红色。

7 6
AAAAAB
ABBBAB
ABAAAB
ABABBB
ABAAAB
ABBBAB
AAAAAB
Yes
2 13
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
No