快速幂
fffalling
这个作者很懒,什么都没留下…
展开
-
快速幂
快速幂若求A的156次方,我们会发现A^156=A^128*A^16*A^8*A^4;而156(10)=10011100,正好和上面相对应;所以我们可以用一个按位与从左至右巧妙的求解; 代码如下while(n){ if(n&1) ans*=A; A*=A; n/=2;}原创 2017-09-17 19:38:24 · 366 阅读 · 0 评论 -
用矩阵快速幂求斐波那契数列
在学习矩阵快速幂之前,先要知道快速幂,大家可以通过这个网址初步了解快速幂 http://blog.csdn.net/ffgcc/article/details/78012628 了解过之后我们来学习矩阵快速幂. 先了解一下矩阵乘法: 若A为n×k矩阵,B为k×m矩阵,则它们的乘积AB(有时记做A·B)将是一个n×m矩阵。前一个矩阵的列数应该等于后一个矩阵的行数,得出的矩阵行数等于前一个矩阵...原创 2017-09-21 18:20:49 · 1595 阅读 · 2 评论 -
HDU 多校 6395 Sequence(分段矩阵快速幂
解析: 初始矩阵(B,A,1) 单位矩阵(1,1,0,2,0,0,K,0,1) 其中K可以分成好几段,分段具体看代码#include<bits/stdc++.h>#define ll long long#define inf 0x3f3f3f3f#define pb push_back#define mod 1000000007#define rep(i,a,b) ...原创 2018-08-13 19:23:13 · 203 阅读 · 0 评论