#CSPR08B. [CSP复赛模拟第08套-B题] 有多少把刀

    ID: 9980 传统题 1000ms 512MiB 尝试: 0 已通过: 0 上传者: 标签>编程题c++CSPCSP复赛CSP模拟练习CSP复赛模拟第08套第08套-B题

[CSP复赛模拟第08套-B题] 有多少把刀

有多少把刀

题目描述

小珅拿到了一副 nnmm列的二维字符画,字符画中的 n×mn \times m个字符都是 2626个小写英文字母中的一个。小珅认为 'v'是个笑脸,而如果有一些 'v'构成了一个开口朝着左上方的直角,就认为这是一把刀。比如下面的所有 'v'就构成了一个开口朝着左上方的直角:

ooooov
ooooov
ovvvv

形式化的说,如果有一个 'v'左边有连续的不少于一个 'v',上面也有连续的不少于一个 'v',那么这些 'v'就构成了一个开口朝着左上方的直角,小珅就认为是一把刀。

小珅认为只要形状不同或者位置不同就是不同的刀,所以上面的那个例子中有 66把刀。(下面展现了那六把刀的位置,和刀无关的部分都用 'o'表示了。)

ooooo oooov ooooo oooov ooooo oooov
oooov oooov oooov oooov oooov oooov
oovvv oovvv oovvv oovvv ovvvv ovvvv

现在给你一个 nnmm列的字符画,请你数数有多少把刀吧!

输入格式

第一行为两个整数 n,mn, m

接下来 nn行,每行有 mm个字符,即 n×mn \times m的字符画。

输出格式

一个整数,即刀的数量。

输入输出样例

输入 #1


3 5
oooov
oovov
ovvvv

输出 #1


7

输入 #2


3 5
vvoov
vooov
ovvvv

输出 #2


6

输入 #3


3 3
vvv
vvv
vvv

输出 #3


9

输入 #4


10 10
vvvvvoovvv
oovvvvvvvv
ovvvvvvooo
vvvvooovvv
vvvvvvvvvv
vvvvvvvvvv
vvvvvvvvvv
vvvvvvvvvv
vvvvvvovvv
vvvvvvvvvv

输出 #4


850

说明/提示

对于 100%100\%的数据,1n,m20001 \le n, m \le 2000

子任务 111010分):保证 n=m=2n = m = 2

子任务 222020分):保证 n=2n = 2

子任务 333030分):保证 1n,m1001 \le n, m \le 100

子任务 444040分):没有特殊限制。