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

     1 //矩阵大小上限
     2 const int SIZ=100;
     3 int MOD=100;
     4 
     5 //矩阵大小为n*m,初始化全部为0
     6 struct mat
     7 {
     8     int n,m;
     9     int ar[SIZ][SIZ];
    10     mat()
    11     {
    12         memset(ar,0,sizeof(ar));
    13         n=m=SIZ;
    14     };
    15 };
    16 
    17 //矩阵乘法
    18 mat operator *(mat a,mat b)
    19 {
    20     mat c;
    21     c=mat();
    22     c.n=a.n;
    23     c.m=b.m;
    24     for(int i=1;i<=a.n;i++)
    25         for(int j=1;j<=b.n;j++)
    26             if(a.ar[i][j]!=0)
    27             for(int k=1;k<=a.m;k++)
    28             {
    29                 c.ar[i][k]+=(a.ar[i][j]*b.ar[j][k])%MOD;
    30                 c.ar[i][k]%=MOD;
    31             }
    32     return c;
    33 }
    34 
    35 //矩阵加法
    36 mat operator +(mat a,mat b)
    37 {
    38     mat c;
    39     c=mat();
    40     c.n=a.n;
    41     c.m=a.m;
    42     for(int i=1;i<=a.n;i++)
    43         for(int j=1;j<a.m;j++)
    44             c.ar[i][j]=a.ar[i][j]+b.ar[i][j];
    45     return c;
    46 }
    47 
    48 //矩阵快速幂
    49 mat operator ^(mat a,int k)
    50 {
    51     mat c;
    52     c=mat();
    53     c.n=a.n;
    54     c.m=a.m;
    55     for(int i=1;i<=a.n;i++)
    56         c.ar[i][i]=1;
    57     while(k)
    58     {
    59         if(k&1)
    60             c=c*a;
    61         a=a*a;
    62         k/=2;
    63     }
    64     return c;
    65 }
    View Code
  • 相关阅读:
    jdbc代码
    openwrt vsftp
    openwrt 配置samba && ubuntu 配置samba
    如何学习开源项目
    Makefile 笔记
    Samba 学习笔记
    quilt-补丁工具
    to-do-list
    新增feeds模块
    linux命令
  • 原文地址:https://www.cnblogs.com/wsruning/p/4673001.html
Copyright © 2011-2022 走看看