CF510B Fox And Two Dots

题目描述

狐狸 Ciel 正在玩一款名为「Two Dots」的手机益智游戏。游戏的基础关卡是在一个 $n \times m$ 的棋盘上进行,如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF510B/5e941a17ee5b7737fe65a0c59f70935ca12f4283.png) 每个格子里有一个点,每个点都有一个颜色。我们用不同的大写英文字母表示不同的颜色。 这个游戏的关键是寻找由同色点组成的环。例如,上图中有四个蓝色点围成一个环。严格来说,我们把一串点 $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 翻译