#L3397. 「2020-2021 集训队作业」春天,在积雪下结一成形,抽枝发芽
「2020-2021 集训队作业」春天,在积雪下结一成形,抽枝发芽
题目描述
一个长度为 ( n ) 的排列是正确的,当且仅当它不存在非平凡(长度不为 ( 1 ) 或 ( n ))的连续子序列,使得它的值也是连续的。例如 ([2,4,1,3]) 是正确的,但 ([1,3,2]) 是不正确的(因为 ([3,2]) 是一个非平凡子序列且值连续),([7,1,6,4,5,3,2]) 也是不正确的(因为 ([6,4,5,3])、([6,4,5,3,2])、([1,6,4,5,3,2]) 都是非平凡且值连续的子序列)。
请分别计算长度为 ( 1 \sim n ) 的正确排列的数目,结果对 ( 998244353 ) 取模。
输入格式
输入文件仅一行,包含两个整数 ( \text{type} ) 和 ( n ),分别表示数据类型和排列最大长度。
输出格式
- 对于 ( \text{type}=0 ) 的数据,输出一行一个非负整数,表示长度为 ( n ) 的正确排列个数 ( \bmod 998244353 ) 的值。
- 对于 ( \text{type}=1 ) 的数据,输出 ( n ) 行,第 ( i ) 行包含一个非负整数,表示长度为 ( i ) 的正确排列个数 ( \bmod 998244353 ) 的值。
样例 1
- 输入:
0 4 - 输出:
2
说明:正确的排列有 ([2,4,1,3])、([3,1,4,2])。
样例 2
- 输入:
1 4 - 输出:
1 2 0 2
数据范围与提示
本题采用捆绑测试:
- 子任务 1:( n \le 8 ),( \text{type} \in {0,1} )
- 子任务 2:( n \le 1000 ),( \text{type} \in {0,1} )
- 子任务 3:( n \le 10^5 ),( \text{type}=0 )
- 子任务 4:( n \le 10^5 ),( \text{type} \in {0,1} )