A6589 | 「ZJOI2022」树
时间限制2s
内存限制1024MB
通过 / 提交0/0
题目描述
九条可怜是一个喜欢树的女孩子,她想生成两棵均有 $n$ 个节点的树。
第一棵树的生成方式是:
1. 节点 $1$ 作为树的根。
2. 对于 $i \in [2, n]$,从 $[1, i - 1]$ 中选取一个节点作为 $i$ 的父亲。
第二棵树的生成方式是:
1. 节点 $n$ 作为树的根。
2. 对于 $i \in [1, n - 1]$,从 $[i + 1, n]$ 中选取一个节点作为 $i$ 的父亲。
九条可怜希望对于任意 $i \in [1, n]$,若第一棵树中的节点 $i$ 为叶子,那么第二棵树中的节点 $i$ 为非叶子;若第一棵树中的节点 $i$ 为非叶子,那么第二棵树中的节点 $i$ 为叶子。一个节点被称为叶子当且仅当没有节点的父亲是它。
九条可怜希望你统计生成两棵树的方案数是多少。具体地,你需要对于所有 $n \in [2, N]$ 都计算方案数。两种方案不同当且仅当存在一棵树中的一个节点 $i$,两种方案中它的父亲不同。因为答案可能很大,你只需要输出答案对 $M$ 取模后的结果。
第一棵树的生成方式是:
1. 节点 $1$ 作为树的根。
2. 对于 $i \in [2, n]$,从 $[1, i - 1]$ 中选取一个节点作为 $i$ 的父亲。
第二棵树的生成方式是:
1. 节点 $n$ 作为树的根。
2. 对于 $i \in [1, n - 1]$,从 $[i + 1, n]$ 中选取一个节点作为 $i$ 的父亲。
九条可怜希望对于任意 $i \in [1, n]$,若第一棵树中的节点 $i$ 为叶子,那么第二棵树中的节点 $i$ 为非叶子;若第一棵树中的节点 $i$ 为非叶子,那么第二棵树中的节点 $i$ 为叶子。一个节点被称为叶子当且仅当没有节点的父亲是它。
九条可怜希望你统计生成两棵树的方案数是多少。具体地,你需要对于所有 $n \in [2, N]$ 都计算方案数。两种方案不同当且仅当存在一棵树中的一个节点 $i$,两种方案中它的父亲不同。因为答案可能很大,你只需要输出答案对 $M$ 取模后的结果。
输入格式
第一行输入两个整数 $N, M$,表示树的节点上限以及模数。
输出格式
输出 $N - 1$ 行,每行一个整数。
具体地,第 $i$ 行输出 $n = i + 1$ 时的答案对 $M$ 取模后的值。
具体地,第 $i$ 行输出 $n = i + 1$ 时的答案对 $M$ 取模后的值。
输入输出样例
输入 #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
对于所有测试点:保证 $2 \le N \le 500$,$10 \le M \le 2^{30}$。
每个测试点的具体限制见下表:
| 测试点编号 | $N \le$ | 特殊限制 |
|:-:|:-:|:-:|
| $1$ | $10$ | 无 |
| $2$ | $20$ | 保证 $M$ 为质数 |
| $3$ | $50$ | 无 |
| $4$ | $50$ | 保证 $M$ 为质数 |
| $5$ | $100$ | 无 |
| $6$ | $100$ | 保证 $M$ 为质数 |
| $7$ | $500$ | 无 |
| $8$ | $500$ | 保证 $M$ 为质数 |
| $9$ | $500$ | 无 |
| $10$ | $500$ | 保证 $M$ 为质数 |
每个测试点的具体限制见下表:
| 测试点编号 | $N \le$ | 特殊限制 |
|:-:|:-:|:-:|
| $1$ | $10$ | 无 |
| $2$ | $20$ | 保证 $M$ 为质数 |
| $3$ | $50$ | 无 |
| $4$ | $50$ | 保证 $M$ 为质数 |
| $5$ | $100$ | 无 |
| $6$ | $100$ | 保证 $M$ 为质数 |
| $7$ | $500$ | 无 |
| $8$ | $500$ | 保证 $M$ 为质数 |
| $9$ | $500$ | 无 |
| $10$ | $500$ | 保证 $M$ 为质数 |
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?