对于矩阵重置运算符
写在里面全 WA
struct matrix{
int p[maxn][maxn];
matrix(){
memset(p,0,sizeof(p));
}
matrix operator *(const matrix &x)const{
matrix res;
for(int i=0;i<m;i++)
for(int j=0;j<m;j++)
for(int k=0;k<m;k++)
res.p[i][j]=(res.p[i][j]+x.p[i][k]*p[k][j]%mod)%mod;
return res;
}
};
写在外面全 $AC
struct matrix{
int p[maxn][maxn];
matrix(){
memset(p,0,sizeof(p));
}
};
matrix operator *(matrix x,matrix y){
matrix res;
for(int i=0;i<m;i++)
for(int j=0;j<m;j++)
for(int k=0;k<m;k++)
res.p[i][j]=(res.p[i][j]+x.p[i][k]*y.p[k][j]%mod)%mod;
return res;
}
这是为什么