在纸上画一棵树,发现如果是回路,每条边走两次就够了 那么不是回路,有些边就不需要走两次了 发现,任意选择两点,从端点出发,路上一旦出现分支就出去走两遍回来 这样走到两一个端点的时候,两点间的距离其实只被走了一次 这样的话就求树的直径就好了 有点像规律题呢 #include <bits/stdc++.h> using namespace std; #define int long long const int maxn = 5e5+10; int n,ans,temp; struct edge{ int to,nxt,w; }d[maxn]; int head[maxn],c...