有个奇怪的问题
查看原帖
有个奇怪的问题
453685
lzm2007楼主2024/11/25 06:08

我第一次写这道题的时候,把矩阵乘法的重载放在了外面

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;
}

然后就过了,这是为什么????

2024/11/25 06:08
加载中...