AT_abc428_g [ABC428G] Necklace
题目描述
有 $N$ 种类型的珠宝,编号从 $1$ 到 $N$。你拥有每种类型无限多个珠宝,同一种类型的珠宝彼此无法区分。
此外,给定一个整数 $U$,满足 $U \geq 2$。每个珠宝的美丽值为 $2$ 到 $U$ 之间的整数,编号为 $i$ 的珠宝的美丽值为 $b_i$。
对于每个满足 $2 \leq x \leq U$ 的整数 $x$,令 $f(x)$ 表示以下问题的答案:
> 你需要将若干颗珠宝以环状排列,制作成一串项链。
> 求满足珠宝使用的美丽值之积等于 $x$ 的项链数,并对 $998244353$ 取模。
> 这里如果两个项链能通过旋转重合,则它们被视为相同,仅计数一次。但是,如果两个项链只能通过翻转+旋转重合,则视为不同,分别计数。例如:
>
> - 项链A:顺时针依次排列珠宝 $1$、$2$、$3$ 制成的项链。
> - 项链B:顺时针依次排列珠宝 $2$、$3$、$1$ 制成的项链。
> - 项链C:顺时针依次排列珠宝 $1$、$3$、$2$ 制成的项链。
>
> 这里项链A和B被认为是相同项链,只计数一次,而项链A和C被视为不同项链。
计算 $f(2), f(3), \dots, f(U)$。
输入格式
输入从标准输入读入,格式如下:
> $N\ U\ b_1\ b_2\ \dots\ b_N$
输出格式
输出 $f(2), f(3), \dots, f(U)$,用空格分隔在一行输出。
说明/提示
### 样例解释 1
例如,当 $x=4$ 时,满足条件的项链有以下四种:
- 用珠宝 $1, 1$ 顺时针排列形成的项链。
- 用珠宝 $1, 2$ 顺时针排列形成的项链。
- 用珠宝 $2, 2$ 顺时针排列形成的项链。
- 仅用珠宝 $4$ 制成的项链。
### 数据范围
- $1 \leq N \leq 5 \times 10^5$
- $2 \leq U \leq 5 \times 10^5$
- $2 \leq b_i \leq U$
- 所有输入均为整数。
由 ChatGPT 5 翻译