loj#P3703. 「联合省选 2022」卡牌

    ID: 16830 传统题 文件IO:card 1000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>容斥原理分块及按大小分类联合省选2022

「联合省选 2022」卡牌

题目描述

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

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

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

输入格式

从文件 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 的值。

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

27
16
0
16

样例 2

见选手目录下的 [card2.in](file:card2.in) 与 [card2.ans](file:card2.ans)。

数据范围与提示

对于 100%100\% 的数据,$n \le 10^6, s_i \le 2000, m \le 1500, \sum_i c_i \le 18000, 2 \le p_{i,j} \le 2000$。

测试点 nn\le mm\le ici\sum_i c_i 其他限制
1,21,2 1010 1010 2020 si30s_i\le 30
353\sim 5 2020 5050
686\sim 8 10610^6 15001500 1000010000 si30s_i\le 30
9119\sim 11 1000010000 10001000 50005000 si500s_i\le 500
12,1312,13 10001000 100100 10001000
141714\sim 17 50005000 600600 70007000
182018\sim 20 10610^6 15001500 1800018000