CF1359B.New Theatre Square

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

New Theatre Square

题目描述

你可能还记得 Theatre square(剧院广场)来自 问题 1A。现在它终于要重新铺设了。

广场仍然是一个 n×mn \times m 米的矩形。然而,这次的情况变得更加复杂。设 ai,ja_{i,j} 表示铺设中的第 ii 行第 jj 个方格。

你得到了方格的图案:

  • 如果 ai,j=a_{i,j} = "*",那么第 ii 行第 jj 个方格应为黑色;
  • 如果 ai,j=a_{i,j} = ".",那么第 ii 行第 jj 个方格应为白色。

黑色方格已经铺设完成。你需要铺设所有白色方格。你有两种铺砖方式:

  • 1×11 \times 1 的瓷砖——每块瓷砖价格为 xx burles,正好覆盖 11 个方格;
  • 1×21 \times 2 的瓷砖——每块瓷砖价格为 yy burles,正好覆盖同一行的相邻 22 个方格。注意,你不能旋转这些瓷砖,也不能将其切割成 1×11 \times 1 的瓷砖。

你需要覆盖所有白色方格,且任意两块瓷砖不能重叠,也不能覆盖黑色方格。

请问,覆盖所有白色方格所需的最小总费用是多少?

输入格式

第一行包含一个整数 tt1t5001 \le t \le 500),表示测试用例的数量。接下来是 tt 个测试用例的描述。

每个测试用例的第一行包含四个整数 nnmmxxyy1n1001 \le n \le 1001m10001 \le m \le 10001x,y10001 \le x, y \le 1000),分别表示剧院广场的尺寸、1×11 \times 1 瓷砖的价格和 1×21 \times 2 瓷砖的价格。

接下来的 nn 行,每行包含 mm 个字符。第 ii 行第 jj 个字符为 ai,ja_{i,j}。如果 ai,j=a_{i,j} = "*",则第 ii 行第 jj 个方格应为黑色;如果 ai,j=a_{i,j} = ".",则第 ii 行第 jj 个方格应为白色。

保证所有测试用例中 n×mn \times m 的总和不超过 10510^5

输出格式

对于每个测试用例,输出一个整数,表示覆盖所有白色方格所需的最小总费用(单位:burles)。

说明/提示

在第一个测试用例中,即使 1×21 \times 2 的瓷砖更便宜,你也只能用一块 1×11 \times 1 的瓷砖。因此总费用为 1010 burles。

在第二个测试用例中,你可以用两块 1×11 \times 1 的瓷砖,总费用为 2020 burles,或者用一块 1×21 \times 2 的瓷砖,总费用为 11 burle。第二种方式更便宜,因此答案为 11

第三个测试用例说明你不能旋转 1×21 \times 2 的瓷砖。你仍然需要用两块 1×11 \times 1 的瓷砖,总费用为 2020

在第四个测试用例中,最便宜的方式是在所有地方都使用 1×11 \times 1 的瓷砖。总费用为 63=186 \cdot 3 = 18

由 ChatGPT 4.1 翻译

样例

4
1 1 10 1
.
1 2 10 1
..
2 1 10 1
.
.
3 3 3 7
..*
*..
.*.
10
1
20
18

在线编程 IDE

建议全屏模式获得最佳体验