矩阵快速幂 模板

来源:互联网 发布:哪里有im域名 编辑:程序博客网 时间:2024/06/05 22:29
#include <iostream>#include <cstring>using namespace std;#define SIZE 2struct matrix{    int e[SIZE][SIZE];    matrix()    {        memset(e, 0, sizeof(e));    }}origin, res;int m;      //上限matrix operator*(matrix &a, matrix &b){    matrix t;    for (int i = 0; i < SIZE; ++i)    {        for (int j = 0; j < SIZE; ++j)        {            for (int k = 0; k < SIZE; ++k)            {                t.e[i][j] += a.e[i][k]*b.e[k][j];                t.e[i][j] %= m;            }        }    }    return t;}matrix quickpower(matrix &a, int b){    matrix ans;    for (int i = 0; i < SIZE; ++i)    {        ans.e[i][i] = 1;    }    while (b)    {        if (b & 1) ans = ans * a;        b >>= 1;        a = a * a;    }    return ans;}
原创粉丝点击