【矩阵乘法快速幂】
快速入门视频: av56433157 1> p1926 斐波那契 #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; long long n; const int mod=1000000007; long long nw[2][2],ans[2][2]; long long t[2][2]; void mul1() { memset(t,0,sizeof(t)); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) t[i][j]+=(ans[i][k]*nw[j][k])%mod; for(int i=0;i<2;i++) for(int j=0;j<2;j++) ans[i][j]=t[i][j]; } void mul2() { memset(t,0,sizeof(t)); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) t[i][j]+=(nw[i][k]*nw[j][k])%mod; for(int i=0;i<2;i++) for(int j=0;j<2;j++) nw[i][j]=t[i][j]; } void mul3()