uva11582(模算数)
来源:互联网 发布:初学c语言 编辑:程序博客网 时间:2024/05/16 18:44
题目大意:
1.f(0) = 0 and f(1) = 1•
2.f(i + 2) = f(i + 1) + f(i)(i>=0)
现在给出a,b,n,求f(a^b)除以n的余数。
题目分析:
这个题目的关键就是要知道这个序列(f[i]%n)是有循环节的。
代码:
#include <iostream>#include <vector>using namespace std;typedef unsigned long long LL;LL a,b,c;vector<LL>v;LL cal(){ v.clear(); v.push_back(0);v.push_back(1); int flag=0; for(int i=2;;i++){ LL ans=(v[i-1]%c+v[i-2]%c)%c; if(ans==0){ flag=1; } if(ans==1){ if(flag==1){ return (LL)v.size()-1; } } else if(ans){ flag=0; } v.push_back(ans); }}LL poww_add(LL a,LL b,LL mod){ LL ans=0; while(b) { if(b&1) ans=(ans%mod+a%mod)%mod; b>>=1; a=(a%mod+a%mod)%mod; } return ans;}LL poww_mul(LL a,LL b,LL mod){ LL ans=1; while(b) { if(b&1) ans=poww_add(ans,a,mod)%mod; b>>=1; a=poww_add(a,a,mod)%mod; } return ans;}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int T; cin>>T; while(T--) { cin>>a>>b>>c; if(c==1){ cout<<0<<endl; continue; } LL mod=cal(); LL pos=poww_mul(a,b,mod); cout<<v[pos]<<endl; } return 0;}
阅读全文
0 0
- uva11582(模算数)
- UVa11582
- uva12169(模算数)
- uva11582(同余模基础)
- 例题10-1 UVa11582 Colossal Fibonacci Numbers!(同余与模算术)
- UVa11582 巨大的斐波那契数列 (快速幂 同余数与模运算)
- UVa11582 - Colossal Fibonacci Numbers!(模运算)
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- uva11582 Colossal Fibonacci Numbers(分治法)
- 《算法竞赛入门经典》第十章 数学概念与方法 UVa11582(幂取模,循环规律,模算术)
- UVA11582 Colossal Fibonacci Numbers!(fibonacci序列模x的周期性)
- 例10-1 uva11582(裴波那切数列)
- 算数字(二进制)
- JavaScript Math(算数)对象
- JavaScript Math(算数)对象
- JavaScript Math(算数)对象
- JavaScript Math(算数)对象
- JavaScript Math(算数)对象
- codeforces 877E. Danil and a Part-time Job (DFS序列+线段树)
- Spark SQL运行原理
- AngualrJS 自定义过滤器
- 八皇后
- 购物车(angularjs)
- uva11582(模算数)
- RxJava——RxJava基础类及使用Java 8的lambda
- Python实现选择排序
- 利用Kali Linux获取http协议加密的账户密码
- poj1691——Painting A Board
- 在Windows7下安装Ubuntu16.04双系统 +在Ubuntu16.04下tensorflow-gpu的搭建(详细图文教程)
- 爬虫程序中-代理服务器的设置
- okhttp的建立
- MVP+OKhttp,拦截器+Rxjava+RecyclerView 全选反选,隐藏,显示切换标题