我第一次写这道题的时候,把矩阵乘法的重载放在了外面
jz operator*(const jz &x,const &y)
{
jz z;
memset(z.a,0,sizeof(z.a));
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
z.a[i][j]=(z.a[i][j]+x.a[i][k]*y.a[k][j]%mod)%mod;
}
}
return z;
}
但这样却错了,于是我就把重载放进了结构体里面
jz operator*(const jz &x)const
{
jz z;
memset(z.a,0,sizeof(z.a));
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
z.a[i][j]=(z.a[i][j]+x.a[i][k]*a[k][j]%mod)%mod;
}
}
return z;
}
然后就过了,这是为什么????