#P3395. 「2020-2021 集训队作业」Yet Another Permutation Problem

「2020-2021 集训队作业」Yet Another Permutation Problem

题目描述

给定一个长度为 nn 的排列 [1,2,,n][1,2,\ldots,n],你可以进行以下操作:

  • 选择一个数,将其取出然后放到排列的开头或末尾。

对每个 k=0,1,,n1k=0,1,\ldots,n-1,求出进行至多 kk 次操作可能得到的排列个数。由于这些数可能非常大,你只需要回答它们除以 mm 的余数即可。

输入格式

一行两个整数 n,mn,m1n10001\le n\le 1000108m109+910^8\le m\le 10^9+9mm 是素数)。

输出格式

nn 行,第 ii 行一个整数表示 k=i1k=i-1 时的答案。

3 998244353

1
5
6

1 100000007

1

20 1000000009

1
39
1100
26220
554040
10581480
184187520
930255982
586386822
781249333
374807160
139825602
462558935
67876942
578348054
201415654
108018732
350356788
280522125
280522126

数据范围与提示

Subtask #1 (10 points): n10n\le 10

Subtask #2 (10 points): n18n\le 18

Subtask #3 (10 points): n50n\le 50

Subtask #4 (30 points): n300n\le 300

Subtask #5 (40 points): 无额外限制。