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 自动生成**

输入格式

输出格式