QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100
[+19]

# 9637. S>a<M

统计

题目描述

对于大小不超过 n,且每个元素都是 [0,n] 中的整数的可重集合 S,定义一次操作 SaM(Select and Mex)为:

  1. 取出任意一个非空可重子集 T
  2. 计算 x=mexT
  3. TS 中删除后,再将 x 加入 S

对于 S,令 f(S) 表示对 S 做任意多次 SaM 操作后,S 的不同元素的个数的最大值。

SA 酱现在给你了 S 的一个子集 T,希望你求出所有满足下列要求的大小为 nS 的个数。

  • TS
  • 0S
  • f(S)=k

你只需要求出答案对 109+7 取模的余数即可。

输入格式

第一行两个整数 n|T|

|T|0,第二行 |T| 个整数表示 T 中的元素。

输出格式

对于每个 k=1,2,,n,输出对应的答案。

样例 1

样例输入 1
3 0
样例输出 1
0 3 7

样例 2

样例输入 2
6 2
2 2
样例输出 2
0 0 0 50 30 4

样例 3

样例输入 3
12 4
2 5 5 6
样例输出 3
0 0 0 0 0 470 5530 17352 22065 4655 308 8

样例解释

S={0,1,1},{0,0,1},{0,0,0} 时,有 f(S)=2;对于其它的 S,都有 f(S)=3

数据范围

对于所有数据,满足 2n2000|T|nT 中元素 [0,n]Z

Subtask 分值 特殊性质
1 15 |T|=n
2 15 n12
3 15 n30
4 20 n70
5 15 n120
6 20 n200