CF135D Cycle
题目描述
小 Petya 非常喜欢由字符 “0” 和 “1” 组成的矩形表格。最近,他收到了妈妈送给他的一张这样的表格。该表格有 $n$ 行 $m$ 列。行从上到下编号为 $1$ 到 $n$,列从左到右编号为 $1$ 到 $m$。Petya 立刻决定无论如何都要找到最长的“酷环”。
一个环是由若干两两不同的格子组成的序列,其中每一对相邻的格子都有公共边;此外,第一个格子与最后一个格子也有公共边。一个环被称为“酷环”,当且仅当同时满足以下所有条件:
- 环完全由包含 “1” 的格子组成。
- 环上的每个格子,恰好与环上的另外两个格子有公共边。
- 表格中每个包含 “1” 的格子,要么属于环,要么位于环的外部(见下文定义)。
为了形式化地定义“外部”的概念,我们将环画在平面上。令环上的每个格子 $(i,j)$($i$ 为行号,$j$ 为列号)对应于坐标平面上的点 $(i,j)$。对于每对属于环且有公共边的格子,用线段连接它们对应的点。这样,我们得到了一条没有自交和自接触的闭合折线。该折线将平面分为两个连通部分:一个是无限大的区域,另一个是有限的区域。如果某个格子 $(r,c)$ 不属于环,且其对应的点 $(r,c)$ 位于无限大的区域内,则称该格子位于环的外部。
请帮助 Petya 找出表格中最长的酷环的长度。环的长度定义为属于该环的格子的数量。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \leq n,m \leq 1000$),分别表示表格的行数和列数。接下来的 $n$ 行,每行包含 $m$ 个字符,每个字符为 “0” 或 “1”。
输出格式
输出一个整数,表示表格中最长酷环的长度。如果不存在这样的环,输出 $0$。
说明/提示
在第一个样例中,只有一个环,并且它是酷环。
在第二个样例中,没有任何环。
在第三个样例中,有两个酷环,长度分别为 $12$ 和 $24$。
在第四个样例中,也只有一个环,但它不是酷环,因为该环内部还有包含 “1” 的格子。
由 ChatGPT 4.1 翻译