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

    以前打的矩阵幂真是丑的要死,现在比以前强了一点,重载运算符能理解一些了,对于矩阵乘认识也深了,码一小份模板。

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<cstdio>
    #include<vector>
    #include<queue>
    #include<stack>
    #include<set>
    #include<map>
    using namespace std;
    const int P=2019;
    int n;
    struct Matrix {
        int x[50][50];
        Matrix(){
            memset(x,0,sizeof(x));
        }
        friend Matrix operator * (Matrix a,Matrix b){
            Matrix c=Matrix();
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    for(int k=1;k<=n;k++)
                        c.x[i][j]=(c.x[i][j]+a.x[i][k]*b.x[k][j])%P;
            return c;
        }
        void I(){
            for(int i=1;i<=n;i++)
                x[i][i]=1;
            return ;
        }
        void add(int a,int b,int c){
            x[a][b]=c;return ;
        }
        void put(int a,int b){
            printf("%d
    ",x[a][b]);return ;
        }
    };
    Matrix qpow(Matrix a,int k){
        Matrix c=Matrix(),b=a;
        c.I();
        for(;k;k>>=1,b=b*b)
            if(k&1) c=c*b;
        return c;
    }
    int main(){
        
    }
    View Code

    add、put操作和qpow写外面纯属个人喜好,重载*还是很优秀的,个人不太喜欢重载^。

  • 相关阅读:
    gnuplot learn note
    command line text process
    raspberry pi boot without HDMI
    gnuplot运行方式
    读取外部excel文件
    DB2中Lob is closed. ERRORCODE=4470的解决
    Myeclipse项目编码
    Json使用
    数组元素全排列递归算法
    XmlHttpRequest IE 乱码问题
  • 原文地址:https://www.cnblogs.com/Yu-shi/p/11203736.html
Copyright © 2011-2022 走看看