矩阵快速幂 模版

来源:互联网 发布:淘宝网睡衣大全冬季 编辑:程序博客网 时间:2024/05/18 01:52
typedef long long ll;const int MAX = 5;const ll mod=1e9+7;typedef  struct{    ll  m[MAX][MAX];}Matrix;Matrix P= {};//构造矩阵Matrix I= {};//原始矩阵Matrix matrixmul(Matrix a,Matrix b){    int i,j,k;    Matrix c;    for (i = 0 ;  i < MAX;  i++)        for (j = 0;  j < MAX; j++)                    {            c.m[i][j] = 0;            for (k = 0;  k< MAX;  k++)                c.m[i][j]=(c.m[i][j] +(a.m[i][k] * b.m[k][j])%mod+mod)%mod;        }    return c;}Matrix quickpow(long long n){    Matrix m =P,b=I;    while (n)    {        if(n&1)        b = matrixmul(b,m);        n = n/2;        m = matrixmul(m,m);    }    return b;}

0 0
原创粉丝点击