#3918. USACO 2011 年 11 月比赛 银奖组 Cow Beauty Pageant (Silver Level)

USACO 2011 年 11 月比赛 银奖组 Cow Beauty Pageant (Silver Level)

题目描述

听说最新潮流是“三斑奶牛”,Farmer John 一口气买了一整群三点皮奶牛。
然而时尚说变就变,现在最 in 的竟是“单斑”!

FJ 打算用油漆把每头奶牛的 三个斑点 合并成 一个
牛皮被抽象为 N×MN\times M 网格:

  • X 表示斑点的一部分;
  • . 表示空白皮肤。

两个 X上下或左右相邻(对角线不算)即同属一块斑点。
保证每头奶牛 恰好三块斑点

任务:在网格中添加最少数量的 X,使三块斑点连成一块大斑点。

输入格式

  • 第 1 行:两个整数 N,MN,M1N,M501\le N,M\le 50)。
  • 2N+12\sim N+1 行:每行一个长度为 MM 的字符串,仅含 X.,描述牛皮图案。

输出格式

  • 第 1 行:一个整数,表示需要新增的最少 X 数量。

样例

样例输入

6 16
................
..XXXX....XXX...
...XXXX....XX...
.XXXX......XXX..
........XXXXX...
..XXX....XXX....

样例输出

4

数据范围与提示

  • 1N,M501\le N,M\le 50
  • 保证恰好三个连通块(斑点)。
  • 只能上下左右移动;对角线无效。