比赛 |
2022级数学专题练习赛9 |
评测结果 |
AAAAAAAAAAAAAAAEEEEE |
题目名称 |
兔农 |
最终得分 |
75 |
用户昵称 |
HeSn |
运行时间 |
1.998 s |
代码语言 |
C++ |
内存使用 |
47.50 MiB |
提交时间 |
2023-02-08 20:55:19 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, k, p, f[10000010], vis[10000010];
signed main() {
freopen("noi2011_rabbit.in", "r", stdin);
freopen("noi2011_rabbit.out", "w", stdout);
cin >> n >> k >> p;
f[1] = f[2] = 1;
f[3] = 2;
for(int i = 3; i <= n; i ++) {
f[i] = f[i - 1] + f[i - 2];
f[i] %= k;
if(f[i] == 1) {
f[i] --;
vis[i] = 1;
}
// f[i] %= p;
}
for(int i = 3; i <= n; i ++) {
f[i] = f[i - 1] + f[i - 2];
f[i] %= p;
if(vis[i]) {
f[i] = (f[i] + p - 1) % p;
}
}
cout << f[n];
return 0;
}