#3625. [Codeforces Round #250] 小朋友和二叉树

[Codeforces Round #250] 小朋友和二叉树

题目描述

我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树。

考虑一个含有 nn 个互异正整数的序列 c1,c2,,cnc_1,c_2,\cdots,c_n。如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合 {c1,c2,,cn}\left\{c_1,c_2,\cdots,c_n\right\} 中,我们的小朋友就会将其称作神犇的。并且他认为,一棵带点权的树的权值,是其所有顶点权值的总和。

给出一个整数 mm,你能对于任意的 ss1sm1\le s\le m)计算出权值为 ss 的神犇二叉树的个数吗?请参照样例以更好的理解什么样的两棵二叉树会被视为不同的。

我们只需要知道答案关于 998244353998244353717223+17*17*2^{23}+1,一个质数)取模后的值。

输入格式

第一行有两个整数 n,mn,m

第二行有 nn 个用空格隔开的互异的整数 c1,c2,,cnc_1,c_2,\cdots,c_n

输出格式

输出 mm 行,每行有一个整数。第 ii 行应当含有权值恰为 ii 的神犇二叉树的总数。请输出答案关于 998244353998244353717223+17*17*2^{23}+1,一个质数)取模后的结果。

2 3
1 2
1
3
9
3 10
9 4 3
0
0
1
1
0
2
4
2
6
15
13 10 6 4 15
5 10
0
0
0
1
0
1
0
2
0
5

数据规模与约定

对于 100%100\% 的数据,1n1051\le n\le 10^51m1051\le m\le 10^51ci1051\le c_i\le 10^5

样例解释

对于第一个样例,有 99 个权值恰好为 33 的神犇二叉树:

题目来源

VFleaKing & pyx1997 感谢 wyl8899 提供中文翻译。