#P11742. Dynamic Mex Problem

Dynamic Mex Problem

题目背景

你对 min×mex\text{min}\times \text{mex} 问题颇有研究!

题目描述

小 A 给你了一个数字 nn,要求你求解 mex\text{mex} 问题!你当然对 min×mex\text{min}\times \text{mex} 问题颇有研究,决定来秒掉这道题!

定义集合 S(A)S(A)AA 是一个序列,当且仅当以数字 xx 作为最小值的 AA 的子区间的个数为奇数时,xx 属于集合 S(A)S(A)。你需要对于每一个 i=0,1,2,,ni=0,1,2,\dots,n 分别求出 mex{S(a)}=i\text{mex}\{S(a)\}=i 的序列 aa 的数量,其中序列 aa00n1n-1 的任意一个排列。

答案可能较大,请对 109+710^9+7 取模。


mex\text{mex} 函数定义:设 SS 是一个非负整数集合,则 mex(S)\text{mex}(S) 定义为不在集合 SS 中的最小非负整数。用数学符号表示为:mex(S)=min{xN:xS}\operatorname{mex}(S)=\min\{x\in\mathbb{N}:x\notin S\}

输入格式

输入一行整数 nn,代表排列数组 aa 的长度。

输出格式

输出 n+1n+1 行,每行一个整数,意义如题面所述。

输入数据 1

2

输出数据 1

2
0
0

提示

【样例解释 1\mathbf 1

可以得到,S([1,0])=S([0,1])={1}S([1,0])=S([0,1])=\{1\}

  • i=0i=0 时,mex{S(a)}=0\text{mex}\{S(a)\}=0 的序列 aa 有两种,分别是 [0,1][0,1][1,0][1,0]
  • i=1i=1 时,mex{S(a)}=1\text{mex}\{S(a)\}=1 的序列 aa 不存在。
  • i=2i=2 时,mex{S(a)}=2\text{mex}\{S(a)\}=2 的序列 aa 不存在。

【数据规模与约定】

本题开启子任务捆绑测试。本题自动开启 O2 优化。请注意使用较快的输出方式。

  • Subtask 1(30 pts):n10n\leq 10
  • Subtask 2(20 pts):n100n\leq 100
  • Subtask 3(20 pts):n1000n\leq 1000
  • Subtask 4(30 pts):n5×106n\leq 5\times 10^6

对于所有测试点满足 1n5×1061\leq n\leq 5\times 10^6