7457. 最大建筑 II (Maximum Building II)
时间限制:1000 MS 内存限制:512 MB
题目描述
# 最大建筑 II (Maximum Building II) 时间限制:$1.00\text{ s}$ 空间限制:$512\text{ MB}$ ## 题目描述 给你一张森林的地图,其中一些格子是空的,另一些格子上有树木。 你想在森林里建造一座矩形建筑物,这样就不需要砍伐任何树木。你的任务是对于每一种可能长宽的建筑物,计算有多少个不同的位置可以放置。 ## 输入格式 第一行包含两个整数 $n$ 和 $m$:森林的大小(行数和列数)。 接下来的 $n$ 行描述了这个森林。每个格子要么是空的(用 `.` 表示),要么是有树的(用 `*` 表示)。 ## 输出格式 输出 $n$ 行,每行包含 $m$ 个整数。第 $i$ 行的第 $j$ 个整数代表尺寸为 $i \times j$ 的矩形建筑能被放置的合法位置的数量。 ## 输入输出样例 ### 输入 #1 ```text 4 7 ...*.*. .*..... ....... ......* ``` ### 输出 #1 ```text 24 17 13 9 6 3 1 16 9 7 5 3 1 0 9 3 2 1 0 0 0 3 0 0 0 0 0 0 ``` ## 说明/提示 例如,对于尺寸为 $2 \times 4$ 的建筑物,恰好有 $5$ 个合适的可行位置。 ### 数据规模与约定 - $1 \le n, m \le 1000$