题目描述
给定一个正整数 n 和一个长度为 n+1 的序列 lim0,lim1,lim2,…,limn,求长度为 n+1 的整数序列 f0,f1,f2,…,fn 的方案数,使得以下条件成立。
- 对于所有 0≤i≤n,有 0≤fi≤limi。
- 对于任意 0≤m≤n 满足,对于所有 0≤i≤m,有 ffi+fm−i=fm。(当 i>n 时,fi=−1)
答案对 998244353 取模。
输入格式
输入共两行。
第一行一个正整数 n,表示序列长度为 n+1。
第二行 n+1 个正整数,分别表示 lim0,lim1,…,limn。
输出格式
输出共一行。
第一行一个整数,表示符合要求的序列个数对 998244353 取模的结果。
样例一
2
2 2 2
output
6
explanation
符合要求的方案有:[0,0,0],[0,1,0],[0,1,1],[0,1,2],[1,0,1],[1,1,1]
。
样例二
5
1 1 4 5 1 4
output
8
样例三
10
0 1 2 3 4 5 6 7 8 9 10
output
56
数据范围
下发文件中有 Unix 格式的样例。
对于 100% 的数据,有 1≤n≤2000,0≤limi≤n。
共 20 个测试点,各个测试点的数据范围如下:
测试点编号 |
n≤ |
其他约束 |
1 |
无 |
2 |
5 |
3 |
15 |
4 |
30 |
5 |
50 |
6 |
70 |
7 |
100 |
8 |
200 |
9 |
100 |
lim0=0 |
10 |
500 |
11 |
2000 |
12 |
lim0=0 且 limi≤5 |
13 |
limi≤5 |
14 |
limi≤20 |
15∼16 |
limi=i |
17∼20 |
无 |