QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 512 MB 總分: 100

#1185. 争论,还是不争论

统计

你是某家非常成功的剧院的导演。你最喜欢威廉·莎士比亚,尽管他倾向于创作血腥的结局。关于他的一些剧作——比如《哈姆雷特》和《李尔王》——人们常说,如果它们再多一幕,就不得不从观众席的第一排开始杀人了。

现在,你快要因为莎士比亚没有写出这最后一幕而对他产生怨恨了。这是因为刚刚有 $2k$ 个人来到了你的剧院。他们是 $k$ 对名人——足球运动员、模特、YouTube 主播——他们似乎并不完全理解戏剧表演的含义。每一对名人都极有可能在演出期间引发激烈的争吵,从而彻底破坏演出。但有一个解决办法——这取决于你如何为他们分配座位,如果一对名人没有被分配到相邻的座位,那么发生争吵的可能性就会小得多。

剧院礼堂由 $n$ 行 $m$ 列的座位组成。有些座位已经被“普通”观众预订了,你不想让他们换座位。共有 $k$ 对名人,你必须为每一位名人分配一个座位,使得没有任何一对名人占据两个相邻的座位(我们认为两个座位相邻仅当它们共享一条公共边,即一个在另一个的旁边或前后)。为了让自己振作起来,请计算出你可以这样做的总方案数——这通常是一个非常大的数字,所以只需要计算其对 $10^9 + 7$ 取模后的结果。如果任何一位名人被分配到了不同的座位,则认为两种分配方案是不同的。请注意,我们区分所有的名人(认为他们是不相同的)。

输入格式

输入的第一行包含测试用例的数量 $z$ ($1 \le z \le 100$)。接下来是各测试用例的描述。 每个测试用例的第一行包含三个正整数 $n, m, k$ ($1 \le n \cdot m \le 144, 1 \le k \le mn/2$),分别表示行数、每行的座位数以及名人对数。接下来的 $n$ 行描述了座位情况——每一行都是一个由字符 ‘X’ 和 ‘.’ 组成的字符串,其中 ‘.’ 表示空座位,‘X’ 表示已被占用的(不可用的)座位。你可以假设至少有 $2k$ 个空座位。

输出格式

对于每个测试用例,输出一个数字——在没有一对名人被分配到相邻座位的情况下,为名人分配座位的方案总数,结果对 $10^9 + 7$ 取模。

样例

输入 1

2
2 2 2
..
..
4 4 3
X.X.
....
.X..
...X

输出 1

8
347040

说明

在第一个样例中,所有的分配方式如下所示(‘A’ 和 ‘a’ 表示分配给第一对名人的座位,‘B’ 和 ‘b’ 表示分配给第二对名人的座位):

AB Ab ab aB BA bA ba Ba ba Ba BA bA ab aB AB Ab

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.