zoukankan      html  css  js  c++  java
  • 矩阵

    struct Matrix
    {
        int h,w;
        long long mx[MAXS][MAXS];
    
        Matrix()
        {
            h=0;
            w=0;
            memset(mx,0,sizeof(mx));
        }
        Matrix operator* (const Matrix& b) const
        {
            Matrix tmp;
            memset(tmp.mx,0,sizeof(tmp.mx));
            tmp.h=h;
            tmp.w=b.w;
            for (int i=0; i<h; i++)
            {
                for (int j=0; j<b.w; j++)
                {
                    for (int k=0; k<w; k++)
                    {
                        tmp.mx[i][j]=(tmp.mx[i][j]+(mx[i][k]*b.mx[k][j])%MOD)%MOD;
                    }
                }
            }
            return tmp;
        }
    
        void initE()
        {
            memset(mx,0, sizeof(mx));
            for (int i=0 ; i<w ; i++)
            {
                mx[i][i]=1LL;
            }
        }
    
        Matrix mpow(long long  k)
        {
            Matrix c,b;
            c=(*this);
            memset(b.mx,0,sizeof(b.mx));
            b.w=w;
            b.h=h;
            b.initE();
            while(k)
            {
                if(k&1LL)
                {
                    b=b*c;
                }
                c=c*c;
                k>>=1LL;
            }
            return b;
        }
    };
  • 相关阅读:
    正则里的.*?
    无边框缩放
    平台 测试笔记
    eclipse快捷键
    linux笔记
    笔记
    wamp、wordpress
    java-selenium
    html/css笔记
    selenium2——ruby
  • 原文地址:https://www.cnblogs.com/tun117/p/5794111.html
Copyright © 2011-2022 走看看