#hhkb2020e. [hhkb2020_e]Lamps
[hhkb2020_e]Lamps
题目描述
我们有一个 行 列的网格,每个方格都是整洁或杂乱的。
你现在要在这个网格中的一个或多个整洁方格上放置灯。
一盏灯将照亮四个方向(向上、向下、向左和向右),直到达到网格的边缘或第一次遇到杂乱方格为止(杂乱方格不会被照亮)。这盏灯还将照亮它所处的方格。
给定整数 、 和 个长度为 的字符串 。如果 的第 个字符是 .
,那么从上到下第 行、从左到右第 列的方格是整洁的;如果 的第 个字符是 #
,那么从上到下第 行、从左到右第 列的方格是杂乱的。
令 为整洁方格的数量。总共有 种放置灯的方式。假设对于这 种方式中的每一种方式,计算由一个或多个灯照亮的方格的数量。找到这些数量之和对 取模的结果。
约束条件
- 是长度为 的由
.
和#
构成的字符串。
输入
输入以以下格式从标准输入中给出:
输出
打印在 种放置灯的方式下由一个或多个灯照亮的方格的数量之和对 取模的结果。
示例 1
1 5
..#..
示例输出 1
48
总共有 种放置灯的方式。
- 在 种方式中(至少左侧的第 个和第 个方格之一包含灯,至少左侧的第 个和第 个方格之一包含灯),有 个方格被照亮。
- 在 种方式中(左侧的第 个和第 个方格之一包含灯,左侧的第 个和第 个方格都不包含灯),有 个方格被照亮。
- 在另外 种方式中(左侧的第 个和第 个方格都不包含灯,至少左侧的第 个和第 个方格之一包含灯),有 个方格被照亮。
- 在 种方式中(没有方格包含灯),没有方格被照亮。
所求和为 $4 \times 9 + 2 \times 3 + 2 \times 3 + 0 \times 1 = 48$。
示例 2
2 3
..#
#..
示例输出 2
52