WA 0pts
#include<bits/stdc++.h>
using namespace std;
int n,dp[110][110],ans=2e9,w[110];
//vector<int>G[110];
void floyd()
{
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(i!=j&&k!=j)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
}
}
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i!=j)dp[i][j]=2e9;
}
}
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)cout<<dp[i][j]<<' ';
// cout<<endl;
// }
for(int i=1;i<=n;i++)
{
int u,v;
cin>>w[i]>>u>>v;
if(u>0)dp[u][i]=dp[i][u]=1;
if(v>0)dp[v][i]=dp[i][v]=1;
}
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)cout<<dp[i][j]<<' ';
// cout<<endl;
// }
// floyd();
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)cout<<dp[i][j]<<' ';
// cout<<endl;
// }
for(int i=1;i<=n;i++)
{
int sum=0;
for(int j=1;j<=n;j++)
{
if(i!=j&&dp[i][j]>0&&w[j]>0)sum+=w[j]*dp[i][j];
//cout<<w[j]*dp[i][j]<<endl;
}
ans=min(ans,sum);
//cout<<ans<<endl;
}
cout<<ans;
return 0;
}
样例输出 −2028888051 。