矩阵快速幂

来源:互联网 发布:网络写作平台推荐 编辑:程序博客网 时间:2024/05/19 23:05
struct Ma{    ll a[50][50];    void cc(){        memset(a,0,sizeof(a));    }    Ma operator * (const Ma &b) const {        Ma tmp;        tmp.cc();        for(int i=0;i<ssize;i++){            for(int j=0;j<ssize;j++){                for(int k=0;k<ssize;k++){                    tmp.a[i][j] += (a[i][k] * b.a[k][j]);                    tmp.a[i][j] %= mod;                }            }        }        return tmp;    }}res,x;void qpow(ll y)   //都用ll !!!否则会因为爆ll会T.{    while(y){        if(y&1) res = res * x;        x = x * x;        y >>= 1;    }}void init(){    res.cc();    x.cc();    ssize = 34;    for(int i=0;i<ssize;i++){        res.a[i][i] = 1;    }    //对x.a目标矩阵进行初始化.}
原创粉丝点击