atcoder#ABC233G. [ABC233G] Strongest Takahashi

[ABC233G] Strongest Takahashi

题目描述

N × N N\ \times\ N のグリッドがあり、いくつかのマスにはブロックが置いてあります。
グリッドの情報は N N 個の文字列 S1,S2,,SN S_1,S_2,\dots,S_N によって以下の形式で与えられます。

  • Si S_i j j 文字目が # のとき、グリッドの上から i i マス目、左から j j マス目にブロックがある。
  • Si S_i j j 文字目が . のとき、グリッドの上から i i マス目、左から j j マス目にブロックがない。

高橋くんは、以下の操作を 0 0 回以上好きなだけ行うことができます。

  • まず、 1 1 以上 N N 以下の整数 D D と、グリッド内の D × D D\ \times\ D の部分正方形を選ぶ。
  • その後、体力 D D を消費して部分正方形内のブロックをすべて破壊する。

高橋くんがすべてのブロックを破壊するのに必要な体力の最小値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N S1 S_1 S2 S_2 \vdots SN S_N

输出格式

答えを整数として出力せよ。

题目大意

问题陈述

给定有一个 N×NN \times N 的地图 SS,若 Si,jS_{i, j}#,则位置 (i,j)(i,j) 上有障碍。

高桥可以进行下面的操作 00 次或更多次:

  • 首先,在 1N1\sim N 之间选择一个整数 DD,并在地图内选择一个 D×DD \times D 的子矩阵。
  • 消耗 DD 的代价摧毁子方格内的所有障碍。

求摧毁所有障碍所需的最少代价。

translated by

https://www.luogu.com.cn/user/409236

5
##...
.##..
#.#..
.....
....#
4
3
...
...
...
0
21
.....................
.....................
...#.#...............
....#.............#..
...#.#...........#.#.
..................#..
.....................
.....................
.....................
..........#.....#....
......#..###.........
........#####..#.....
.......#######.......
.....#..#####........
.......#######.......
......#########......
.......#######..#....
......#########......
..#..###########.....
.........###.........
.........###.........
19

提示

制約

  • N N は整数
  • 1  N  50 1\ \le\ N\ \le\ 50
  • Si S_i #. のみからなる
  • Si=N |S_i|=N

Sample Explanation 1

以下の部分正方形を選ぶことで、消費する体力を 4 4 にすることができ、これが最適です。 - 上から 1 1 マス目、左から 1 1 マス目を左上とした、 3 × 3 3\ \times\ 3 の部分正方形 - 上から 5 5 マス目、左から 5 5 マス目を左上とした、 1 × 1 1\ \times\ 1 の部分正方形

Sample Explanation 2

グリッドにブロックが 1 1 つもない場合もあります。