A8655 | Cutting Figure
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
You've gotten an $n×m$ sheet of squared paper. Some of its squares are painted. Let's mark the set of all painted squares as $A$ . Set $A$ is connected. Your task is to find the minimum number of squares that we can delete from set $A$ to make it not connected.
A set of painted squares is called connected, if for every two squares $a$ and $b$ from this set there is a sequence of squares from the set, beginning in $a$ and ending in $b$ , such that in this sequence any square, except for the last one, shares a common side with the square that follows next in the sequence. An empty set and a set consisting of exactly one square are connected by definition.
A set of painted squares is called connected, if for every two squares $a$ and $b$ from this set there is a sequence of squares from the set, beginning in $a$ and ending in $b$ , such that in this sequence any square, except for the last one, shares a common side with the square that follows next in the sequence. An empty set and a set consisting of exactly one square are connected by definition.
输入格式
The first input line contains two space-separated integers $n$ and $m$ ( $1<=n,m<=50$ ) — the sizes of the sheet of paper.
Each of the next $n$ lines contains $m$ characters — the description of the sheet of paper: the $j$ -th character of the $i$ -th line equals either "#", if the corresponding square is painted (belongs to set $A$ ), or equals "." if the corresponding square is not painted (does not belong to set $A$ ). It is guaranteed that the set of all painted squares $A$ is connected and isn't empty.
Each of the next $n$ lines contains $m$ characters — the description of the sheet of paper: the $j$ -th character of the $i$ -th line equals either "#", if the corresponding square is painted (belongs to set $A$ ), or equals "." if the corresponding square is not painted (does not belong to set $A$ ). It is guaranteed that the set of all painted squares $A$ is connected and isn't empty.
输出格式
On the first line print the minimum number of squares that need to be deleted to make set $A$ not connected. If it is impossible, print -1.
输入输出样例
输入 #1
5 4 #### #..# #..# #..# ####
输出 #1
2
输入 #2
5 5 ##### #...# ##### #...# #####
输出 #2
2
In the first sample you can delete any two squares that do not share a side. After that the set of painted squares is not connected anymore.
The note to the second sample is shown on the figure below. To the left there is a picture of the initial set of squares. To the right there is a set with deleted squares. The deleted squares are marked with crosses.

The note to the second sample is shown on the figure below. To the left there is a picture of the initial set of squares. To the right there is a set with deleted squares. The deleted squares are marked with crosses.

C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted