SP10930 DIXDOOM - Dixon Dominoes
题目描述
Dixon 在家里有些无聊,于是他从盒子里拿出了一些多米诺骨牌,心想:「是否可以用 Qx 个多米诺骨牌来模拟一个游戏呢?」尽管 Dixon 并不是超级程序员,但他对于问题的约束条件略知一二。所以他决定把这个任务交给你。如果你愿意接受这个任务,你需要找出使用 N 个多米诺骨牌并且恰好用 Qx 个多米诺骨牌模拟游戏的所有可能组合方式。如果无法实现,请输出「0」。
输入:
输入的第一行为一个整数 T,表示测试用例的数量。接下来的 T 个测试用例中,每个测试用例首先有两行,分别是 N 和 Q,其中 N 是 Dixon 拥有的多米诺骨牌的数量,Q 是你需要回答的查询次数。接下来是 N 行,每行含有两个整数,表示一块多米诺骨牌的两个部分。接着,有 Q 行,每行含一个整数,表示构建游戏模拟所需的多米诺骨牌数量。
**约束条件:**
- $1 \le T \le 100$
- $1 \le N \le 16$
- $1 \le Q \le 16$
- $0 \le N_1, \ldots, N_N \le 6$
- $1 \le Q_1, \ldots, Q_N \le N$
输出:
对于每个查询,打印一个整数,表示可以用 Qx 个多米诺骨牌组成游戏模拟的所有可能组合的数量。由于结果可能非常大,输出数字需要对 31337 取模。
**样例输入:**
```
3
4 3
2 3
3 1
1 4
4 3
1
3
4
2 1
1 2
1 2
2
2 1
1 1
1 1
2
```
**样例输出:**
```
8
10
4
4
8
```
在第一个测试用例中,如果 Q=4,这里的输出可以是:
1. 连接第 1、2、3 和 4 块骨牌
2. 连接第 4、3、2 和 1 块骨牌
3. 连接第 2、3、4 和 1 块骨牌
4. 连接第 1、4、3 和 2 块骨牌
**提示:**当只有一块骨牌时,你可以通过利用骨牌的两个面来进行游戏模拟。例如对于「2 1」这块骨牌,可以形成「2 1」和「1 2」两种不同的游戏。
**本翻译由 AI 自动生成**
输入格式
无
输出格式
无