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就不会,为什么啊(