
快速幂
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 · 376 阅读 · 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 · 1633 阅读 · 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 · 206 阅读 · 0 评论