#P7435. 简单的排列计数

    ID: 6360 远端评测题 1200ms 256MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划,dp数学O2优化动态规划优化组合数学排列组合Stirling生成函数快速傅里叶变换 FFT快速数论变换 NTT

简单的排列计数

题目描述

invπ\text{inv}_{\pi} 表示排列 π\pi 的逆序对数。如果 π\pi 长度为 nn 则有

invπ=i=1nj=i+1n[πi>πj]\text{inv}_{\pi}=\sum\limits_{i=1}^{n}\sum\limits_{j=i+1}^{n}[\pi_i>\pi_j]

给定两个正整数 n,kn,k,和一个排列 π\pi^\prime,定义一个长度为 nn 的排列 π\pi 的权值 valπ\text{val}_{\pi}

valπ=i=1nj=i+1nπi[πi>πj]\text{val}_{\pi}=\prod\limits_{i=1}^{n}\prod_{j=i+1}^{n}\pi_i^{[\pi_{i}>\pi_j]}

对于 0mk0\leq m\leq k

π[invπ=m]valπ\sum\limits_{\pi}[\text{inv}_\pi=m]\text{val}_\pi

其中 π\pi 是长度为 nn 的排列。

输入格式

第一行两个整数 n,kn,k

输出格式

一行 k+1k+1 个整数,表示答案对 998244353998244353 取模的值。

输入数据 1

3 3

输出数据 1

1 5 15 18

提示

样例解释 1

inv(1,2,3)=0,inv(1,3,2)=1,inv(2,1,3)=1,inv(2,3,1)=2,inv(3,1,2)=2,inv(3,2,1)=3\text{inv}_{(1,2,3)}=0,\text{inv}_{(1,3,2)}=1,\text{inv}_{(2,1,3)}=1,\text{inv}_{(2,3,1)}=2,\text{inv}_{(3,1,2)}=2,\text{inv}_{(3,2,1)}=3 val(1,2,3)=1,val(1,3,2)=3,val(2,1,3)=2,val(2,3,1)=6,val(3,1,2)=9,val(3,2,1)=18\text{val}_{(1,2,3)}=1,\text{val}_{(1,3,2)}=3,\text{val}_{(2,1,3)}=2,\text{val}_{(2,3,1)}=6,\text{val}_{(3,1,2)}=9,\text{val}_{(3,2,1)}=18

所以当 m=0m=0 时答案为 11m=1m=1 时为 55m=2m=2 时为 1515m=3m=3 时为 1818

数据范围

子任务编号 分值 nn\leq kk\leq
Subtask 1 11 66
Subtask 2 1212 4040
Subtask 3 11 998244352998244352 11
Subtask 4 1616 1010
Subtask 5 2424 2×1052\times 10^5
Subtask 6 4646 998244352998244352

对于 100%100\% 的数据,2n9982443522\leq n\leq 9982443521kmin(2×105,n(n1)2)1\leq k\leq \min(2\times 10^5,\frac{n(n-1)}{2})。