11582 - Colossal Fibonacci Numbers!
来源:互联网 发布:网络自由与秩序申论 编辑:程序博客网 时间:2024/05/23 02:13
像刘汝佳书上说的,斐波那契数有一个叫尾数循环的性质:个位数是一个60步的循环,最后两位数是一个300步的循环。。。但是不会超过n^2;感兴趣的朋友可以查一查。
所以问题就变成了求a^b这个超大的数mod n等于多少,也就是所谓的幂取模利用递归,将大数分解取模;
但是要注意,0对任何数取模都是0,任何数对1取模都是0;
#include<bits/stdc++.h>using namespace std;typedef unsigned long long ULL;const int maxn = 1000000+10;int f[maxn],kase;int pow_mod(ULL a,ULL n,int m) { if(n==0) return 1; ULL x=pow_mod(a,n/2,m); ULL ans = (ULL)x * x % m; if(n%2==1) ans = ans*a%m; return (int )ans;}int solve(ULL a,ULL b,int n) { if(a==0||n==1) return 0; for(int i=2;;i++){ f[i]=f[i-1]+f[i-2]; f[i]=f[i]%n; if(f[i-1]==0&&f[i]==1) { kase=i-1;break; } } int v=pow_mod(a%kase,b,kase); return f[v];}int main() { int t,n; ULL a,b; scanf("%d",&t); while(t--) { cin>>a>>b>>n; f[0]=0; f[1]=1; printf("%d\n",solve(a,b,n)); } return 0;}
0 0
- 11582 - Colossal Fibonacci Numbers!
- 11582 - Colossal Fibonacci Numbers!
- UVA 11582 - Colossal Fibonacci Numbers!
- UVa 11582 - Colossal Fibonacci Numbers!
- UVA - 11582 Colossal Fibonacci Numbers!
- uva 11582 Colossal Fibonacci Numbers!
- UVa 11582 Colossal Fibonacci Numbers!
- UVA - 11582 Colossal Fibonacci Numbers!
- UVA 11582 - Colossal Fibonacci Numbers!
- Uva 11582 Colossal Fibonacci Numbers!
- uva 11582Colossal Fibonacci Numbers!
- 【UVa】[11582]Colossal Fibonacci Numbers!
- UVA 11582 Colossal Fibonacci Numbers!
- UVA 11582 Colossal Fibonacci Numbers!
- UVA 11582 Colossal Fibonacci Numbers!
- UVA 11582 Colossal Fibonacci Numbers!
- UVA-11582 Colossal Fibonacci Numbers!
- UVA 11582 Colossal Fibonacci Numbers! 数学
- MATLAB读写文件汇总
- keeper
- Spring控制器注解
- oc中把NSString转换为变量
- 黑马程序员——OC语言------继承、多态
- 11582 - Colossal Fibonacci Numbers!
- 深入浅出Redis(三)高级特性:管道
- 蓝桥杯 买不到的数目(数学,不懂)
- HTTP与HTTPS的区别
- Java的Overriding重写-笔记
- Properties的使用
- 自助去除APK的广告!(整理、修改、简化版)
- mysql 字符集(CHARACTER SET)和校对集(COLLATE)
- java设置web首页访问action