#P7341. 『MdOI R4』Phoenix
『MdOI R4』Phoenix
题目背景
这是 题中唯一一道没有题目背景的题。
题目描述
给定 个不可重集合 ,集合中的数都是 的范围内的整数。
现在请你求出有多少种 的排列 ,使得
$(\sum\limits_{i=1}^n |s_i|)-(\sum\limits_{i=1}^{n-1} |s_{p_i}\bigcap s_{p_{i+1}}|)=|\bigcup\limits_{i=1}^n s_i|$
成立。
答案对 取模。保证取模前的真实答案大于 。
输入格式
本题有多组数据。
第一行一个正整数 表示数据组数,对于每组数据:
第一行两个正整数 。
第二行 个正整数 ,每个正整数代表一个状态压缩下的集合,若 在二进制下从低位往高位的第 位是 ,则 包含 ,否则 不包含 。
输出格式
行,每行对应一组测试数据。
对于每组数据,一行一个整数表示答案。
1
3 3
1 3 7
4
2
5 9
2 30 98 386 482
4 2
1 3 3 1
12
12
提示
【样例解释 #1】
三个集合分别为 。
共有四个排列符合条件,分别是 。
【数据规模与约定】
本题采用捆绑测试 |子任务编号|||特殊性质|分值| |:-|:-|:-|:-|:-| ||||无特殊限制|| |||无特殊限制||| ||无特殊限制|无特殊限制||| ||无特殊限制|无特殊限制|每个集合恰好包含两个元素|| ||无特殊限制||无特殊限制|| ||无特殊限制|无特殊限制|无特殊限制||
对于 的数据,,,,,其中 表示所有测试数据中 的和。
【提示与帮助】
本题读入量较大,请选手选择较快的读入方式。
感谢 对此题的贡献。