A1635.AC狗的C

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

这天,AC狗走在路上,突然摔了一跤,爬起来后发现自己好像有点变化,AC的C摔掉了,只剩下A,这回得改名叫A狗了。

但是AC狗不想改名,想找回他的C,他在地上疯狂寻找,发现地上掉落了不少个C。

假设地面是一个 N×MN×M 的平面。平面里要么是字符.,要么是字符*。找到所有*构成的C的个数。

C的上下两端的长度相同,长度至少为2,竖列的长度至少为3,且C的内部不能有*。并且这些C独立唯一,不和其他字符连在一起。且C的列宽度为1。

(连在一起是指上下左右四个方向)

例如:

.....
.***.
.*...
.***.
.....

是一个C。

.....
.***.
.*...
.**..
.....

不是一个C,上下两端长度不同。

.....
.***.
.**..
.***.
.....

不是一个C,C竖着的列宽度为1,且内部不能有符号。

.....
.***.
.*...
.***.
**...

不是一个C,因为不是独立存在,和其他连在一起。

.....
.***.
.*...
.***.
*....

是一个C。

输入格式

输入的第一行是两个整数 N,MN, M

接下来NN行每行MM 个字符,要么是.要么是*,代表地面。

输出格式

输出为一个整数,代表地面里C的数量。

输入输出样例

  • 输入#1

    8 10
    ...**.....
    **.*..****
    *..*..*...
    **.**.****
    ..........
    **********
    *.........
    **********

    输出#1

    4
  • 输入#2

    11 9
    ***......
    *..****..
    **.*.....
    **.*..**.
    *..*..*..
    **.*..**.
    ...*.....
    ...****..
    **.......
    *......**
    **.....**
    

    输出#2

    2

说明/提示

【样例说明】

对于样例2,有一个C的内部出现了*,另一个C和其他字符连接在一起,不是独立存在。

【数据规模】

对于百分百的数据,1<=N,M<=20001<=N,M<=2000

C的数量不超过1000

首页