文章

4

粉丝

271

获赞

6

访问

7.7k

头像
斐波那契快速幂
P1812 复旦大学2018年机试
发布于2023年3月25日 12:55
阅读数 1.5k

#include <iostream>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pii;
const ll MOD=999983;
pii db(pii k)
{
	k.first%=MOD;
	k.second%=MOD;
	return {(2*k.first*k.second%MOD+MOD-k.first*k.first%MOD)%MOD,(k.second*k.second+k.first*k.first)%MOD};
}
pii fib(int n){
	if (n==1) return {1,1};
	pii ans=fib(n/2);
	ans=db(ans);
	if (n%2==1) ans={ans.second%MOD,(ans.first+ans.second)%MOD};
	return ans;
}
int main(){
	int k;
	cin>>k;
	cout<<fib(k).second%MOD;
}
//1 1 2 3 5 8 13 21 34 55

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发