CF510B Fox And Two Dots
题目描述
狐狸 Ciel 正在玩一款名为「Two Dots」的手机益智游戏。游戏的基础关卡是在一个 $n \times m$ 的棋盘上进行,如下图所示:

每个格子里有一个点,每个点都有一个颜色。我们用不同的大写英文字母表示不同的颜色。
这个游戏的关键是寻找由同色点组成的环。例如,上图中有四个蓝色点围成一个环。严格来说,我们把一串点 $d_1, d_2, \dots, d_k$ 称为一个环,当且仅当它满足以下条件:
1. 这 $k$ 个点互不相同:如果 $i \ne j$,那么 $d_i$ 和 $d_j$ 表示的格子不同。
2. $k$ 至少为 4。
3. 所有的点颜色相同。
4. 对于所有 $1 \le i \le k-1$,$d_i$ 和 $d_{i+1}$ 是相邻的;同时,$d_k$ 和 $d_1$ 也应当相邻。如果两个格子有公共边,则称它们相邻。
请你判断棋盘上是否存在这样一个环。
输入格式
第一行包含两个整数 $n$ 和 $m$($2 \le n, m \le 50$),表示棋盘的行数和列数。
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,表示每一行点的颜色。每个字符是一个大写英文字母。
输出格式
如果存在这样的环,则输出 "Yes";否则输出 "No"。
说明/提示
在第一个样例中,所有的 'A' 形成了一个环。
在第二个样例中,没有这样的环。
第三个样例即为上图所示('Y' 代表黄色,'B' 代表蓝色,'R' 代表红色)。
由 ChatGPT 5 翻译