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 翻译