QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 256 MB Points totaux : 10

#6023. 卡尔卡松 [B]

Statistiques

最近,Bajtazar 迷上了卡卡颂(Carcassonne)游戏。在这款游戏中,玩家轮流在棋盘上放置单位正方形瓷砖;每个新瓷砖(第一个除外)必须至少有一条边与之前放置的瓷砖相连。每位玩家在放置完瓷砖后会立即抽取下一块瓷砖,因此 Bajtazar 可以在其他玩家行动时为自己的下一步行动制定策略。然而,他必须考虑多种情况,以防有对手将瓷砖放置在他原本想放置的位置。

在一个 $n \times n$ 的棋盘上(Bajtazar 的桌子有其局限性),已经放置了一些瓷砖。Bajtazar 现在正在等待他的 $k$ 个对手行动。他想知道他需要为多少种可能的情况做好准备,更确切地说:在 $k$ 名玩家完成各自的行动后,可能会形成多少种不同的布局?我们忽略瓷砖上的图案;如果存在一个格子,在一个布局中放置了瓷砖而另一个布局中没有,则这两个布局被视为不同。

输入格式

输入的第一行包含两个整数 $n$ 和 $k$ ($2 \le n \le 3000, 1 \le k \le 4$),分别表示棋盘的边长和 Bajtazar 的对手数量。接下来的 $n$ 行,每行包含一个长度为 $n$ 的字符串,由字符“#”和“.”组成,描述了棋盘的一行:第 $i$ 行的第 $j$ 个字符表示棋盘第 $i$ 行第 $j$ 列的格子;“.”表示空位,“#”表示已放置瓷砖的格子。棋盘上至少已经放置了一个瓷砖,且至少有 $k$ 个空位。

输出格式

输出一行一个整数,表示在 $k$ 次行动后可能产生的不同布局数量。该结果需对 $10^9 + 7$ 取模。

样例

输入 1

3 2
.#.
##.
#..

输出 1

8

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.