Matrix
简介:
一种非常重要神奇算法;满足于
A
A
为的矩阵与
B
B
为的矩阵才有意义。
struct Matrix{
int a[N][N];
Matrix(){memset(a,0,sizeof(a));}
Matrix operator*(const Matrix &B)const{
Matrix x;
REP(k,1,n) REP(i,1,n) REP(j,1,n) x.a[i][j]+=a[i][k]+B.a[k][j];
return x;
}
}Ans,Res[34];
void Pow(int k){//预处理Res,那么Pow可以做到O(n^2)
int cnt=0;
while(k){
if(k&1)Ans=Ans*Res[cnt];
cnt++;
k>>=1;
}
}