• 矩阵快速幂的模板


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

    #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写外面纯属个人喜好,重载*还是很优秀的,个人不太喜欢重载^。

  • 相关阅读:
    根据坐标点画图形
    js 解析geojson格式
    devexpress 安装
    DataTable 获取列名
    ADO.NET 注册
    css:outline
    javascript函数sort
    引用类型-2015/10/06
    2015-11-02-js
    jquery
  • 原文地址:https://www.cnblogs.com/Yu-shi/p/11203736.html
Copyright © 2020-2023  润新知