A93021.「ZJOI2022」树

NOI/NOI+/CTSC

官方

通过率:0%

时间限制:2.00s

内存限制:1024MB

题目描述

九条可怜是一个喜欢树的女孩子,她想生成两棵均有 nn 个节点的树。

第一棵树的生成方式是:

  1. 节点 11 作为树的根。
  2. 对于 i[2,n]i \in [2, n],从 [1,i1][1, i - 1] 中选取一个节点作为 ii 的父亲。

第二棵树的生成方式是:

  1. 节点 nn 作为树的根。
  2. 对于 i[1,n1]i \in [1, n - 1],从 [i+1,n][i + 1, n] 中选取一个节点作为 ii 的父亲。

九条可怜希望对于任意 i[1,n]i \in [1, n],若第一棵树中的节点 ii 为叶子,那么第二棵树中的节点 ii 为非叶子;若第一棵树中的节点 ii 为非叶子,那么第二棵树中的节点 ii 为叶子。一个节点被称为叶子当且仅当没有节点的父亲是它。

九条可怜希望你统计生成两棵树的方案数是多少。具体地,你需要对于所有 n[2,N]n \in [2, N] 都计算方案数。两种方案不同当且仅当存在一棵树中的一个节点 ii,两种方案中它的父亲不同。因为答案可能很大,你只需要输出答案对 MM 取模后的结果。

输入格式

第一行输入两个整数 N,MN, M,表示树的节点上限以及模数。

输出格式

输出 N1N - 1 行,每行一个整数。

具体地,第 ii 行输出 n=i+1n = i + 1 时的答案对 MM 取模后的值。

输入输出样例

  • 输入#1

    5 998244353
    

    输出#1

    1
    2
    12
    120
    
  • 输入#2

    50 10007
    

    输出#2

    1
    2
    12
    120
    1928
    4340
    3971
    8636
    815
    1971
    1138
    4657
    4784
    7523
    951
    6104
    2967
    9876
    5030
    4921
    4936
    8826
    5951
    3506
    1431
    7190
    8667
    655
    5143
    4548
    1416
    7845
    3569
    4220
    8273
    2745
    1650
    7824
    8477
    3716
    366
    9885
    5166
    7416
    6843
    1214
    7262
    3538
    681
    

说明/提示

对于所有测试点:保证 2N5002 \le N \le 50010M23010 \le M \le 2^{30}

每个测试点的具体限制见下表:

测试点编号 NN \le 特殊限制
11 1010
22 2020 保证 MM 为质数
33 5050
44 5050 保证 MM 为质数
55 100100
66 100100 保证 MM 为质数
77 500500
88 500500 保证 MM 为质数
99 500500
1010 500500 保证 MM 为质数
首页