样例都过不了QwQ 统计的时候因为没有向自己的父亲建边所以没有判断
#include <bits/stdc++.h>
using namespace std;
int m,n,q,co,wei;
const int maxn=1e6+5;
vector<pair<int,int> > g[maxn];
long long sum;
int son[maxn],len[maxn*2];
void dfs(int cur,int fa)
{
son[fa]++;
for(register int i=0;i<g[cur].size();i++)
{
int ver=g[cur][i].first;
if(ver!=fa)
{
dfs(ver,cur);
g[cur][i].second=abs(n-son[ver]-son[ver])*len[ver];
}
}
}
int main()
{
scanf("%d",&m);
for(register int i=1;i<m;i++)
{
son[i]=1;
scanf("%d%d%d",&n,&q,&co);
len[q]=co;
g[n].push_back(make_pair(q,0));
// g[q].push_back(make_pair(n,0));
}
dfs(1,0);
for(register int i=1;i<m;i++)
{
for(register int j=0;j<g[i].size();j++)
sum+=g[i][j].second;
}
printf("%lld",sum);
}