CF438E The Child and Binary Tree

题目描述

我们的孩子非常喜欢计算机科学,尤其喜欢二叉树。 考虑一个由 $n$ 个互不相同的正整数组成的数列:$c_{1},c_{2},\ldots,c_{n}$。孩子称某个点权二叉树为“好”的二叉树,当且仅当对于每个结点 $v$,$v$ 的权值属于集合 $\{c_{1},c_{2},\ldots,c_{n}\}$。此外,我们的孩子认为一棵点权二叉树的权值等于所有结点权值之和。 给定整数 $m$,你能否对于所有 $s$($1 \leq s \leq m$)计算出权值恰好为 $s$ 的“好”的有根二叉树的数量?请参考样例理解哪些树被认为是不同的。 我们只需要你输出答案对 $998244353$ 取模后的结果($7 \times 17 \times 2^{23} + 1$,是一个质数)。

输入格式

第一行包含两个整数 $n, m$,满足 $1 \leq n \leq 10^{5}$,$1 \leq m \leq 10^{5}$。 第二行包含 $n$ 个两两不同的正整数 $c_1, c_2, \ldots, c_n$,$1 \leq c_i \leq 10^{5}$。

输出格式

输出 $m$ 行,每行包含一个整数。第 $i$ 行输出权值恰好为 $i$ 的“好”的有根二叉树的数量,对 $998244353$ 取模。

说明/提示

在第一个样例中,权值恰好为 $3$ 的“好”的有根二叉树共有 $9$ 种: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF438E/eac2c310aa15e844747811a6717476e6a022e10e.png) 由 ChatGPT 5 翻译