题目描述
给定整数 N,K。现在考虑所有满足以下条件的长度为 K 的数列 a=(a1,a2,…,aK):
- ai 是满足 1≤ai≤N 的整数;
- a 的所有元素互不相同。
将所有可能的数列 a 按照字典序排列,得到一个“数列的集合” s。
现在给定集合 s 中的一个数列 P,对于每个整数 t=1,2,…,N,请回答以下问题:
- 满足下列所有条件的数列 b 的个数,模 998244353 后的结果是多少?
- 数列 b 存在于集合 s 中;
- 数列 b 中包含整数 t;
- 数列 b 的字典序不大于数列 P。
关于数列的字典序:数列 A=(A1,…,A∣A∣) 的字典序严格小于数列 B=(B1,…,B∣B∣),当且仅当满足以下两条之一:
- ∣A∣<∣B∣ 且 (A1,…,A∣A∣)=(B1,…,B∣A∣);
- 存在整数 1≤i≤min{∣A∣,∣B∣},使得
- (A1,…,Ai−1)=(B1,…,Bi−1);
- Ai<Bi。
输入格式
输入通过标准输入给出,格式如下:
N K P1 P2 … PK
输出格式
共输出 N 行。
第 i 行输出当 t=i 时问题的答案。
样例 1
输入
4 2
3 2
输出
5
5
4
2
样例 2
输入
18 13
5 13 11 2 18 1 10 15 17 4 12 7 3
输出
925879409
905921009
665544804
665544719
783035803
349952762
349952758
349952757
349952757
349921178
212092637
710350150
378895603
129113201
129111892
129098081
129096772
110181652
说明/提示
限制条件
- 输入均为整数。
- 1≤K≤N≤3×105。
- P 满足题目中的条件。
样例解释 1
在本样例中,N=4,K=2。此时,集合 $s=((1,2),(1,3),(1,4),(2,1),(2,3),(2,4),(3,1),(3,2),(3,4),(4,1),(4,2),(4,3))$。在集合 s 中,且字典序不大于 (3,2) 的数列中:
- 包含 1 的有 (1,2),(1,3),(1,4),(2,1),(3,1) 共 5 个;
- 包含 2 的有 (1,2),(2,1),(2,3),(2,4),(3,2) 共 5 个;
- 包含 3 的有 (1,3),(2,3),(3,1),(3,2) 共 4 个;
- 包含 4 的有 (1,4),(2,4) 共 2 个。
由 ChatGPT 4.1 翻译