有待整理的模板

矩阵快速幂

 1 struct Matrix

 2 {

 3     double mat[2][2];

 4 };

 5 Matrix mul(Matrix a,Matrix b)

 6 {

 7     Matrix ret;

 8     for(int i=0;i<2;i++)

 9       for(int j=0;j<2;j++)

10       {

11           ret.mat[i][j]=0;

12           for(int k=0;k<2;k++)

13             ret.mat[i][j]+=a.mat[i][k]*b.mat[k][j];

14       }

15     return ret;

16 }

17 Matrix pow_M(Matrix a,int n)

18 {

19     Matrix ret;

20     memset(ret.mat,0,sizeof(ret.mat));

21     for(int i=0;i<2;i++)ret.mat[i][i]=1;

22     Matrix temp=a;

23     while(n)

24     {

25         if(n&1)ret=mul(ret,temp);

26         temp=mul(temp,temp);

27         n>>=1;

28     }

29     return ret;

30 }
View Code

 次小生成树

你可能感兴趣的:(模板)