A6583 | 「联合省选 2022」卡牌
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
小 A 有 $n$ 张卡牌,编号为 $1, 2, \ldots , n$。每张卡牌上写着一个正整数,第 $i$ 张卡牌上的正整数为 $s_i$。
现在有 $m$ 轮游戏,第 $i$ 轮游戏会给出 $c_i$ 个质数,小 A 需要选择任意多张卡牌,使得这些卡牌上面的正整数的乘积能被该轮游戏给出的每个质数整除。
这当然难不倒小 A,于是他开始思考一个更难的问题,对于每一轮游戏,他有多少
种卡牌的选法。这给小 A 整不会了,于是他只能来求助你,你只需要告诉他答案模 $998244353$ 的值即可。两种选法 A 和 B 互不相同当且仅当存在一张卡牌在 A 中被选择但在 B 中未被选择或者存在一张卡牌在 B 中被选择但在 A 中未被选择。注意:牌面上的数字相同但编号不相同的两张卡牌被视为不同的卡牌。
现在有 $m$ 轮游戏,第 $i$ 轮游戏会给出 $c_i$ 个质数,小 A 需要选择任意多张卡牌,使得这些卡牌上面的正整数的乘积能被该轮游戏给出的每个质数整除。
这当然难不倒小 A,于是他开始思考一个更难的问题,对于每一轮游戏,他有多少
种卡牌的选法。这给小 A 整不会了,于是他只能来求助你,你只需要告诉他答案模 $998244353$ 的值即可。两种选法 A 和 B 互不相同当且仅当存在一张卡牌在 A 中被选择但在 B 中未被选择或者存在一张卡牌在 B 中被选择但在 A 中未被选择。注意:牌面上的数字相同但编号不相同的两张卡牌被视为不同的卡牌。
输入格式
从文件
第一行一个正整数 $n$,表示卡牌数量。
第二行 $n$ 个正整数 $s_i$,表示每张卡牌上写的数字。
第三行一个正整数 $m$,表示游戏轮数。
接下来 $m$ 行,每行第一个正整数 $c_i$,表示该轮游戏给出的质数个数,接下来 $c_i$ 个质数 $p_{i,j}$,表示该轮游戏给出的所有质数。数据保证 $\sum_i c_i \le 18000$,即所有 $c_i$ 之和不超过 $18000$。
card.in 中读入数据。第一行一个正整数 $n$,表示卡牌数量。
第二行 $n$ 个正整数 $s_i$,表示每张卡牌上写的数字。
第三行一个正整数 $m$,表示游戏轮数。
接下来 $m$ 行,每行第一个正整数 $c_i$,表示该轮游戏给出的质数个数,接下来 $c_i$ 个质数 $p_{i,j}$,表示该轮游戏给出的所有质数。数据保证 $\sum_i c_i \le 18000$,即所有 $c_i$ 之和不超过 $18000$。
输出格式
输出到文件
输出 $m$ 行,每行一个整数,第 $i$ 行表示第 $i$ 轮游戏的方案数模 $998244353$ 的值。
card.out 中。输出 $m$ 行,每行一个整数,第 $i$ 行表示第 $i$ 轮游戏的方案数模 $998244353$ 的值。
输入输出样例
输入 #1
5 10 2 10 5 46 4 2 2 5 2 2 23 1 3 1 23
输出 #1
27 16 0 16
对于 $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$。
| 测试点 | $n\le$ | $m\le$ | $\sum_i c_i$ | 其他限制 |
| :---------: | :-----: | :----: | :----------: | :----------: |
| $1,2$ | $10$ | $10$ | $20$ | $s_i\le 30$ |
| $3\sim 5$ | $10$ | $20$ | $50$ | 无 |
| $6\sim 8$ | $10^6$ | $1500$ | $10000$ | $s_i\le 30$ |
| $9\sim 11$ | $10000$ | $1000$ | $5000$ | $s_i\le 500$ |
| $12,13$ | $1000$ | $100$ | $1000$ | 无 |
| $14\sim 17$ | $5000$ | $600$ | $7000$ | 无 |
| $18\sim 20$ | $10^6$ | $1500$ | $18000$ | 无 |
| 测试点 | $n\le$ | $m\le$ | $\sum_i c_i$ | 其他限制 |
| :---------: | :-----: | :----: | :----------: | :----------: |
| $1,2$ | $10$ | $10$ | $20$ | $s_i\le 30$ |
| $3\sim 5$ | $10$ | $20$ | $50$ | 无 |
| $6\sim 8$ | $10^6$ | $1500$ | $10000$ | $s_i\le 30$ |
| $9\sim 11$ | $10000$ | $1000$ | $5000$ | $s_i\le 500$ |
| $12,13$ | $1000$ | $100$ | $1000$ | 无 |
| $14\sim 17$ | $5000$ | $600$ | $7000$ | 无 |
| $18\sim 20$ | $10^6$ | $1500$ | $18000$ | 无 |
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?