zoukankan      html  css  js  c++  java
  • 矩阵快速幂模板

    const int tn=2;
    struct Matrix
    {
        ll m[111][111];
        Matrix()
        {
            memset(m,0,sizeof(m));
        }
        friend Matrix operator*(Matrix a,Matrix b)
        {
            Matrix res;
            double x;
            for(int i=0; i<tn; i++)
            {
                for(int j=0; j<tn; j++)
                {
                    x=0;
                    for(int k=0; k<tn; k++)
                    {
                        x=(x+(ll)a.m[i][k]*b.m[k][j])%MOD;      //ll不能定为int,防止爆int
                    }
                    res.m[i][j]=x;
                }
            }
            return res;
        }
        friend Matrix operator+(Matrix a,Matrix b)
        {
            Matrix res;
            ll x;
            for(int i=0; i<tn; i++)
            {
                for(int j=0; j<tn; j++)
                {
                    res.m[i][j]=(a.m[i][j]+b.m[i][j])%MOD;
                }
            }
            return res;
        }
        friend Matrix operator^(Matrix a,int b)
        {
            Matrix ans;
            for(int i=0;i<tn;i++) ans.m[i][i]=1;
            for(int i=b; i; i>>=1,a=a*a)
                if(i&1)ans=ans*a;
            return ans;
        }
    } T,F;
    
    
  • 相关阅读:
    rockGenmel stone.txt
    WHICHDAY.txt
    WORKDAYS.txt
    WAIT_YN.txt
    WEEKDAYS.txt
    WHEREXY.txt
    KeySelected.txt
    WINDOW.txt
    UPPER.txt
    ParentShapes It.txt
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/6698520.html
Copyright © 2011-2022 走看看