#L3703. 「联合省选 2022」卡牌

    ID: 4419 传统题 2000ms 512MiB 尝试: 7 已通过: 1 难度: 9 上传者: 标签>动态规划状压DP数论素数判定积性函数组合数学容斥原理生成函数其他线性代数位运算离散化思维数学难度省选/NOI-

「联合省选 2022」卡牌

题目描述
小 A 有 nn 张卡牌,编号为 1,2,,n1, 2, \ldots , n。每张卡牌上写着一个正整数,第 ii 张卡牌上的正整数为 sis_i

现在有 mm 轮游戏,第 ii 轮游戏会给出 cic_i 个质数,小 A 需要选择任意多张卡牌,使得这些卡牌上面的正整数的乘积能被该轮游戏给出的每个质数整除。

这当然难不倒小 A,于是他开始思考一个更难的问题,对于每一轮游戏,他有多少种卡牌的选法。这给小 A 整不会了,于是他只能来求助你,你只需要告诉他答案模 998244353998244353 的值即可。两种选法 AABB 互不相同当且仅当存在一张卡牌在 AA 中被选择但在 BB 中未被选择或者存在一张卡牌在 BB 中被选择但在 AA 中未被选择。注意:牌面上的数字相同但编号不相同的两张卡牌被视为不同的卡牌。


输入格式
从文件 card.in 中读入数据。

第一行一个正整数 nn,表示卡牌数量。

第二行 nn 个正整数 sis_i,表示每张卡牌上写的数字。

第三行一个正整数 mm,表示游戏轮数。

接下来 mm 行,每行第一个正整数 cic_i,表示该轮游戏给出的质数个数,接下来 cic_i 个质数 pi,jp_{i,j},表示该轮游戏给出的所有质数。数据保证 ici18000\sum_i c_i \le 18000,即所有 cic_i 之和不超过 1800018000


输出格式
输出到文件 card.out 中。

输出 mm 行,每行一个整数,第 ii 行表示第 ii 轮游戏的方案数模 998244353998244353 的值。


样例 1
输入:

5
10 2 10 5 4
4
2 2 5
2 2 23
1 3
1 23

输出:

27
16
0
16

第一轮游戏:除了以下 55 种方案外其它方案都可行:什么都不选、选 22、选 55、选 44、选 2244。所以答案为 255=272^5 - 5 = 27

第二轮游戏:只要选了 44,其它卡牌选不选均可,所以答案为 24=162^4 = 16


样例 2
见选手目录下的card2.incard2.ans


数据范围与提示
对于 100%100\% 的数据,n106n \le 10^6si2000s_i \le 2000m1500m \le 1500ici18000\sum_i c_i \le 180002pi,j20002 \le p_{i,j} \le 2000

测试点 nn\le mm\le ici\sum_i c_i 其他限制
1,2 10 10 20 si30s_i\le 30
3~5 20 50
6~8 10610^6 1500 10000 si30s_i\le 30
9~11 10000 1000 5000 si500s_i\le 500
12,13 1000 100 1000
14~17 5000 600 7000
18~20 10610^6 1500 18000