TouchStone
  请登录后使用
登录 注册
距离CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P3218
  • 题目
  • P3218多项式开方(小朋友和二叉树)
    限制 : 时间限制 : 100000 MS   空间限制 : 265536 KB
    评测说明 : 4s
    问题描述

    我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树。
    考虑一个含有n个互异正整数的序列c[1],c[2],...,c[n]。如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合{c[1],c[2],...,c[n]}中,我们的小朋友就会将其称作神犇的。并且他认为,一棵带点权的树的权值,是其所有顶点权值的总和。
    给出一个整数m,你能对于任意的s(1<=s<=m)计算出权值为s的神犇二叉树的个数吗?请参照样例以更好的理解什么样的两棵二叉树会被视为不同的。
    我们只需要知道答案关于998244353(=7*17*223+1,一个质数)取模后的值。

    输入格式

    第一行有2个整数 n,m(1<=n<=105; 1<=m<=105)。
    第二行有n个用空格隔开的互异的整数 c[1],c[2],...,c[n](1<=c[i]<=105)。

    输出格式

    输出m行,每行有一个整数。第i行应当含有权值恰为i的神犇二叉树的总数。请输出答案关于998244353取模后的结果。

    样例输入

    样例输入1:
    2 3
    1 2 

    样例输入2:
    3 10
    9 4 3 

    样例输入3:
    5 10
    13 10 6 4 15 

    样例输出

    样例输出1:
    1
    3
    9

    样例输出2:
    0
    0
    1
    1
    0
    2
    4
    2
    6
    15

    样例输出3:
    0
    0
    0
    1
    0
    1
    0
    2
    0
    5

    提示

    样例解释:
    第一组样例中,s=3的二叉树是这9个: