#YDRS005D. 水如果能编织出自由的轮廓

水如果能编织出自由的轮廓

题目描述

云浅给了你一个正整数 nn,你需要对每个 s=0,1,,n2s=0,1,\cdots,n^2,求出有多少个 1,2,,n1,2,\cdots,n 的排列 pp,满足:

i=1nmax(i,pi)=s\sum_{i=1}^n\max(i,p_i)=s

答案对 PP 取模。

输入格式

一行两个正整数 n,Pn,P

输出格式

输出一行 n2+1n^2+1 个非负整数,用空格分开,表示 s=0,1,,n2s=0,1,\cdots,n^2 的答案。

样例 11 输入

3 100

样例 11 输出

0 0 0 0 0 0 1 2 3 0

样例 11 解释

共有 66 个排列:

  • p=(1,2,3)p=(1,2,3),有 i=1nmax(i,pi)=6\sum_{i=1}^n\max(i,p_i)=6
  • p=(1,3,2)p=(1,3,2),有 i=1nmax(i,pi)=7\sum_{i=1}^n\max(i,p_i)=7
  • p=(2,1,3)p=(2,1,3),有 i=1nmax(i,pi)=7\sum_{i=1}^n\max(i,p_i)=7
  • p=(2,3,1)p=(2,3,1),有 i=1nmax(i,pi)=8\sum_{i=1}^n\max(i,p_i)=8
  • p=(3,1,2)p=(3,1,2),有 i=1nmax(i,pi)=8\sum_{i=1}^n\max(i,p_i)=8
  • p=(3,2,1)p=(3,2,1),有 i=1nmax(i,pi)=8\sum_{i=1}^n\max(i,p_i)=8

于是 s=6,7,8s=6,7,8 时答案分别为 1,2,31,2,3,其余答案均为 00

样例 22 输入

4 114514

样例 22 输出

0 0 0 0 0 0 0 0 0 0 1 3 7 9 4 0 0

测试点约束

对于所有数据,1n150,108P109+71\le n\le 150,10^8\le P\le 10^9+7

子任务编号 nn 特殊性质 分值 依赖子任务
Subtask #1 8\le 8 1010
Subtask #2 20\le 20 11
Subtask #3 60\le 60 1515 22
Subtask #4 150\le 150 PP 是质数 2525
Subtask #5 4040 1,2,3,41,2,3,4