试题编号: | 201809-5 |
试题名称: | 线性递推式 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 样例输入 3 3 6 样例输出 12 样例说明 样例输入 2 1 11 样例输出 1 样例说明 样例输入 10 10 20 样例输出 119744921 数据规模和约定 |
题记:
这道题考试的时候看到有部分测试样例是比较简单的,于是根据公式写了几句,得了20分。剩下的不会了,等我水平高了在说吧……
C++程序如下(20分):
#include <iostream>
using namespace std;
typedef unsigned long long ULL;
const ULL Q = 998244353;
int main()
{
ULL m, l, r;
cin >> m >> l >>r;
ULL k[m], a[r];
a[0] = 1;
for(int i=0; i<m; i++)
cin >> k[i];
for(int i=1; i<=r; i++){
a[i] = 0;
if(i < m){
for(int j=0; j<i; j++)
a[i] += (k[j] * a[i-j-1]) % Q;
}
else{
for(int j=0; j<m; j++)
a[i] += (k[j] * a[i-j-1]) % Q;
}
if(i >= l)
cout << a[i] << endl;
}
return 0;
}