NZAU 1202: GCD 矩阵快速幂 gcd和fib数列一些结论
来源:互联网 发布:联想笔记本的网络接口 编辑:程序博客网 时间:2024/05/08 07:18
斐波那契数列的性质 - Milkor - 博客园
http://www.cnblogs.com/Milkor/p/4734763.html
fn * 1 1 = fn-1
fn-1 1 0 fn-2
所以 1 1 ^ n * 1 结果中的 第二行第一列的值就是fn
1 0 0
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <vector>#include <map>#include <cmath>#include <set>#include <queue>using namespace std;const int INF=1e9+10;typedef long long ll;ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}typedef vector<ll> vec;typedef vector<vec> mat;int mod;mat mul(mat &A,mat &B){ mat C(A.size(),vec(B[0].size())); for(int i=0;i<(int)A.size();i++) for(int k=0;k<(int)B.size();k++) for(int j=0;j<(int)B[0].size();j++) C[i][j]=(1LL*C[i][j]+1LL*A[i][k]*B[k][j])%mod; return C;}mat matpow(mat A,ll n){ mat B(A.size(),vec(A.size())); for(int i=0;i<(int)A.size();i++) B[i][i]=1; while(n){ if(n&1) B=mul(B,A); A=mul(A,A); n>>=1; } return B;}int main(){int a,b;int T;scanf("%d",&T);while(T--){scanf("%d %d %d",&a,&b,&mod);mat A(2,vec(2)); A[0][0]=1; A[0][1]=1; A[1][0]=1; A[1][1]=0; int k=gcd(a+2,b+2);A=matpow(A,k);printf("%d\n",A[1][0] );}return 0;}
阅读全文
0 0
- NZAU 1202: GCD 矩阵快速幂 gcd和fib数列一些结论
- HZAU 1202 GCD (矩阵快速幂 + GCD)
- gcd fib
- HZAU 1202 GCD( 斐波那契数列+矩阵快速幂)
- HZAU 1202 GCD(斐波那契数列性质+矩阵快速幂)
- AOJ 401 gcd定理 + 矩阵快速幂
- poj3070 矩阵快速幂Fib
- 最大公约数和快速gcd
- UVA 10689 Yet another Number Sequence(矩阵快速幂求Fib数列)
- GCD,快速GCD,扩展GCD
- gcd+lcm+快速幂
- Qbxt 模拟赛 Day4 T2 gcd(矩阵乘法快速幂)
- POJ3070矩阵快速幂求Fib
- hdu 5171 fib矩阵快速幂
- fib(限制内存)矩阵+快速幂
- uva 10229 (fib矩阵形式+矩阵快速幂)uva 10518 (fib(n)调用多少次)
- hdu1108 1061 gcd 快速幂
- 素数 快速幂 gcd.lcm
- 如何研读一篇论文?
- Codeforces Gym 100825 C. KenKen You Do It? (暴搜 + 剪枝)
- 级联操作
- luasocket 遇到的问题
- 【剑指Offer】面试题58:二叉树的下一个结点
- NZAU 1202: GCD 矩阵快速幂 gcd和fib数列一些结论
- 搭建环境过google检测,解决卡在google“正在检查网络连接”问题
- linux日志查询(tail命令、分页查询等)
- koa-源码分析
- phpstorm 编码设置
- DataExcel 设置单元格 编辑控件 radiocheck,checkbox,textedit,combotext,numberedit
- android 三种方法实现监听事件
- 如何研读一篇论文?
- soapui中文操作手册(七)----Web Service Sample Project