社区讨论

为什么矩阵乘法这样写会萎掉啊

学术版参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lod452es
此快照首次捕获于
2023/10/31 00:27
2 年前
此快照最后确认于
2023/11/05 10:45
2 年前
查看原帖
C
struct node
{
	long long a[N][N],n,m;
};

void mul(node &res,node p1,node p2)
{
	memset(res.a,0xc0,sizeof(res.a));
	res.n=p1.n,res.m=p2.m;
	for (int i=1;i<=p1.n;i++)
	  for (int j=1;j<=p2.m;j++)
	    for (int k=1;k<=p1.m;k++)
	      res.a[i][j]=max(res.a[i][j],p1.a[i][k]+p2.a[k][j]);
}

signed main()
{
	n=read(),m=read();T=read(),K=read();
	for (int i=1;i<=n;i++) c[i]=read();
	memset(f[0].a,0xc0,sizeof(f[0].a));
	memset(ans.a,0xc0,sizeof(ans.a));
	for (int i=1;i<=n;i++)
	  for (int j=1;j<5;j++) f[0].a[i+(j-1)*n][i+n*j]=0;
	for (int i=1;i<=m;i++)
	{
		x=read(),y=read(),z=read();
		f[0].a[x+(z-1)*n][y]=c[y];
	}
	f[0].n=f[0].m=5*n;
	for (int i=1;i<=30;i++) mul(f[i],f[i-1],f[i-1]);
部分代码,这样子写会RE卡住,但long long改成int就不会,为什么啊(

回复

4 条回复,欢迎继续交流。

正在加载回复...