uva11582 Colossal Fibonacci Numbers!
Posted invoid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva11582 Colossal Fibonacci Numbers!相关的知识,希望对你有一定的参考价值。
快速幂, 循环节,斐波那契数列
只是一个水水的题目,可以看出循环节是小于n^2的,所以先枚举出循环节。然后快速幂取模就可以了。
但要注意必须用unsigned long long,而且我用scanf读入还出现了意想不到的问题,所以只能用cin读入。
这是一个很大的坑点.
#include<algorithm> #include<cstring> #include<iostream> using namespace std; const int maxn = 10000000 + 10; typedef unsigned long long LL; LL a,b,n,m; int f[maxn]; LL power(LL k,LL e) { LL res=1; while(e) { if(e&1) res=res*k%m; k=k*k%m; e=e/2; } return res; } int main() { int T; cin>>T; while(T--) { cin>>a>>b>>n; if(n==1) { cout<<0<<endl; continue; } f[0]=0; f[1]=1; for(int i=2;;i++) { f[i]=(f[i-1]+f[i-2])%n; if(f[i]==f[1]&&f[i-1]==f[0]) { m=i-1; break; } } a%=m; cout<<f[power(a,b)]<<endl; } return 0; }
以上是关于uva11582 Colossal Fibonacci Numbers!的主要内容,如果未能解决你的问题,请参考以下文章
UVA - 11582 Colossal Fibonacci Numbers!循环节
UVa 11582 - Colossal Fibonacci Numbers!(数论)
Colossal Fibonacci Numbers! UVA - 11582
uva11582 Colossal Fibonacci Numbers!