5分求助
查看原帖
5分求助
636409
Headofstate1945楼主2023/11/18 11:16

本人已思考良久了.....

#include<bits/stdc++.h>
#define signed long long 
using namespace std;
signed const N=1e6+5;
vector<pair<signed,signed>>vc[N];
signed n,ans;
int dfs(signed x,signed fa){
	signed r=1;
	for(auto [cx,cy]:vc[x]){
//		cout<<x<<" "<<cx<<"\n";
		if(cx!=fa){
			r+=dfs(cx,x);
			signed l=n-r;
			ans+=abs(r-l)*cy;
		}
	}
	return r;
}
int main(){
	std::ios::sync_with_stdio(0);
	cin>>n;
	for(int i=1;i<n;i++){
		signed a,b,c;
		cin>>a>>b>>c;
		vc[a].push_back({b,c});
		vc[b].push_back({a,c});
	}
//	for(signed i=1;i<=n;i++){
		dfs(1,0);
//	}
	cout<<ans;
	return 0;
}
2023/11/18 11:16
加载中...