U266329 All Perfect!
题目背景
子曰:FC而不AP则罔,AP而不理论则殆。
题目描述
Op(没错就是那个整天玩音游被虐到爆的屑),今天闲的,单指打音游,当然,遇到多押怎么办呢?没事,他会甩狙,如果两个 tap 之间没有间隔,他就可以进行甩狙,但三个吗……就不太行了。例如:
```
##..
....
.#.#
....
.###
```
(用 `#` 代表 tap)
这种情况下,Op 最多只能打上 $2+1+2=5$ 个 tap。
但铺面不只有 tap 音符,还有 hold 音符!
Op 只能同时按住 $1$ 个 hold 音符,且按 hold 音符的中间部分时,不能按其它任何的 tap 和 hold。如:
```
....
##.*
##.*
##.*
##.*
..#%
```
(用 `%` 代表 hold 头部,`*` 代表 hold 中部)
这种情况下如果打 hold 的话(hold 只算一个音不算好多个),那么只能打 $(6,3)$ 的一个 tap 和 $(6,4)$ 的一个 hold 头,只能点击两个音。但是如果选择放弃 hold(hold 必须点完才算打上),则可以打上 $(6,3)$ 的一个 tap 和$(2,1)\sim(5,2)$ 的 $8$ 个音符,总计 $9$ 个,是最优情况。
你以为完了吗?
不不不,还有我们的 drag 音符。当它与 tap 或 hold 头构成双压是同样可以甩狙。且它是唯一可以放在 hold 中(hold 头不能)的音符。如:
```
...--
##*..
--*..
##*..
..-..
##%##
```
(用 `-` 表示 drag)
这种情况下中间 hold 最好还是放弃,但是 hold 中的 drag 还是可以点击的,最优解是 $6$ 行四选二的 $2$ 加上 $5$ 行的 drag 加上前面的$2\times4=8$个音符,最多可以点上 $11$ 个音符。
这次就不考虑flick这种音符啦放轻松,这种音符会放到[升级版](https://www.luogu.com.cn/problem/U266672)里。
输入格式
第一行,$n,m$。
接下来,输入一个 $n$ 行 $m$ 列的音游铺面。
输出格式
输出 Op 单指最多能点上的音符数量。
说明/提示
hold 头可以被甩狙点上,但是hold必须点完才算点上一个音符。
如果按住了 hold,进行甩狙 hold 会断。只要手指离开 hold 即使出去甩狙 drag 也会断,但 drag 在 hold 里不会。
两个音符必须紧挨才可以甩狙。
无论什么音符,甩狙都只能点上两个。(单指三押还是别了吧)
____
对于 $100\%$ 的数据,$1\le n\le30,1\le m\le10$。