比赛 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;
}