蒟蒻求助QAQ
查看原帖
蒟蒻求助QAQ
177540
Mr_steamedbread楼主2020/10/30 20:45

祖国山河一片红(逃

#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++)
	{
		if(g[cur][i].first!=fa)
		{
			dfs(g[cur][i].first,cur);
			g[cur][i].second+=abs(n-1-son[g[cur][i].first])*len[g[cur][i].first];
		}
	}
}
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);
}```
2020/10/30 20:45
加载中...