社区讨论
求条树的直径
学术版参与者 4已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mj5noqpx
- 此快照首次捕获于
- 2025/12/14 19:43 2 个月前
- 此快照最后确认于
- 2025/12/17 21:30 2 个月前
CPP
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
using namespace std;
int n;
vector<PII>g[500005];
int dist1[500005];
int dist2[500005];
int U=1,V=1;
void dfs1(int u,int pre){
if(dist1[u]>dist1[U]){
U=u;
}
for(auto [v,w]:g[u]){
if(v==pre) continue;
dist1[v]=dist1[u]+w;
dfs1(v,u);
}
}
void dfs2(int u,int pre){
if(dist2[u]>dist2[V]){
V=u;
}
for(auto [v,w]:g[u]){
if(v==pre) continue;
dist2[v]=dist2[u]+w;
dfs2(v,u);
}
}
signed main(){
cin>>n;
for(int i=1;i<n;i++){
int u,v,w;
cin>>u>>v>>w;
g[u].push_back({v,w});
g[v].push_back({u,w});
}
dfs1(1,0);
dfs2(U,0);
cout<<dist2[V];
return 0;
}
题目:https://www.luogu.com.cn/problem/U81904#ide
记录: https://www.luogu.com.cn/record/253273887
回复
共 8 条回复,欢迎继续交流。
正在加载回复...