求大佬解释一下这代码怎么过的
查看原帖
求大佬解释一下这代码怎么过的
636409
Headofstate1945楼主2023/11/28 11:06
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n;
vector<pair<int,int>>g[N];
int t=-2e9,ta,ans=-2e9;
void dfs(int u,int fa,int cs){
	if(t<cs){
		t=cs;ta=u;
	}
	for(auto [v,w]:g[u]){
		if(v!=fa){
			dfs(v,u,cs+w);
		}	
	}
}
void dfs1(int u,int fa,int cs){
	ans=max(cs,ans);
	for(auto [v,w]:g[u]){
		if(v!=fa){
			dfs(v,u,cs+w);
		}	
	}
}
signed main(){
	std::ios::sync_with_stdio(0);
	cin>>n;
	for(int i=1,u,v,w;i<n;i++){
		cin>>u>>v>>w;
		g[u].push_back({v,w});
		g[v].push_back({u,w});
	}
	dfs(1,-1,0);
	dfs1(ta,-1,0);
	cout<<10*t+t*(t+1)/2;
}
2023/11/28 11:06
加载中...