用户输出
2
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#116946 | #1471. [L2-1] 称名目题 | Accepted | 100 | 102 ms | 376 K | C++ 17 / 765 B | awapwq233 | 2025-04-20 11:52:21 |
#include <bits/stdc++.h>
#define F(i, a, b) for (int i = a, i##end = b; i <= i##end; i++)
#define UF(i, a, b) for (int i = a, i##end = b; i >= i##end; i--)
using namespace std;
const int maxn = 1e5 + 10;
const int maxm = 1e6 + 10;
#define int long long
int n, k, d;
int f[maxn], g[maxn];
int p = 19491001;
signed main() {
cin >> n >> k >> d;
f[0] = 1;
F(i, 1, n - 1) {
F(j, 1, k) {
if (j == d)
continue;
if (i - j >= 0)
f[i] = (f[i] + f[i - j]) % p;
else
break;
}
if (i >= d)
g[i] = (g[i] + f[i - d]) % p;
F(j, 1, k) {
if (i - j >= 0)
g[i] = (g[i] + g[i - j]) % p;
else
break;
}
}
// F(i, 1, n - 1)
// cout << f[i] << " " << g[i] << endl;
cout << g[n - 1];
return 0;
}