floyed莫名爆炸请大佬看看:
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
const int N=105;
int a[N],g[N][N],n,u,v;
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
memset(g,100005,sizeof(g));
cin>>n;
for(int i=1;i<=n;i++)
{
g[i][i]=0;
cin>>a[i]>>u>>v;
if(u>0)g[i][u]=g[u][i]=1;
if(v>0)g[i][v]=g[v][i]=1;
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
if(i!=k)
for(int j=1;j<=n;j++)
if(k!=j&&i!=j)g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
int ans=1000005;
for(int i=1;i<=n;i++)
{
int k=0;
for(int j=1;j<=n;j++)
k+=a[j]*g[i][j];
ans=min(k,ans);
}
cout<<ans;
return 0;
}
感觉和标程没多大区别啊
大雾大雾