为什么矩阵乘法这样写会萎掉啊
  • 板块学术版
  • 楼主Lynkcat
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/10/14 21:58
  • 上次更新2023/11/5 10:45:23
查看原帖
为什么矩阵乘法这样写会萎掉啊
120911
Lynkcat楼主2020/10/14 21:58
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就不会,为什么啊(

2020/10/14 21:58
加载中...