#7207. djb的防御工事

0
    ID: 7207 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 5 上传者: 标签>2025提高班模拟赛(28)最小割最大流Dinic网格图CSP-S

djb的防御工事

djb 的防御工事

题目描述

djb 最近在玩一个建造类沙盒游戏,这个游戏的地图可以看做一个 n∗mn * m 大小的网格布局

这个游戏中存在村民和怪物两种角色,分布在整个地图中,用 V 表示村民,用 M 表示怪物

每个角色在每一回合都会沿着地图的上下左右四个方向随机的移动,一旦怪物能够碰到村民,djb 的游戏就会失败

现在 djb 作为建造者,他可以花费一定的材料在每个单位网格的边界上建造围墙

现在游戏还没有开始,djb 希望知道自己最少需要建造多少个围墙,才可以使得游戏不会失败?

输入格式

输入第一行包含两个整数 n,mn,m 表示地图大小 接下来 nn 行,每行一个长度为 mm 的字符串表示地图上角色分布情况 其中 V 表示村民,M 表示怪物,E 表示空地

输出格式

输出一个整数,表示 djb 最少需要建造的围墙数量

数据范围

对于 10%10\% 的数据:1≤n,m≤31\leq n,m \leq 3。

对于 30%30\% 的数据:1≤n,m≤201\leq n,m \leq 20。

对于 100%100\% 的数据:1≤n,m≤1001\leq n,m \leq 100。

样例输入

3 3
VVE
EEM
MMV

样例输出

5

样例解释

将左上角的 VV 封起来需要造 33 个围墙,将右下角的 VV 封起来需要 22 个围墙,共 55 个