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 翻译