树的直径
参考代码:
#include<bits/stdc++.h> typedef long long LL; using namespace std; const int SIZE = 5E4; vector<pair<int, int> > vec[SIZE]; bool Vis[SIZE]; pair<int, int> DFS(int now) { Vis[now] = 1; pair<int, int> nowpos = make_pair(now, 0); for (int pos = 0; pos < vec[now].size(); pos++) { pair<int, int> next = vec[now][pos]; if (Vis[next.first]) continue; pair<int, int> tmp = DFS(next.first); if (next.second + tmp.second > nowpos.second) { nowpos = tmp; nowpos.second += next.second; } } return nowpos; } int spend(int dis) { return (11 + 10 + dis) * dis / 2; } int main() { int form, to, w, total; scanf("%d", &total); for (int pos = 1; pos < total; pos++) { scanf("%d%d%d", &form, &to, &w); vec[form].push_back(make_pair(to, w)); vec[to].push_back(make_pair(form, w)); } pair<int, int> tmp = DFS(1); memset(Vis, false, sizeof(Vis)); printf("%d\n", spend(DFS(tmp.first).second)); }
0.0分
0 人评分
1028浏览:953 |
【蟠桃记】 (C语言代码)浏览:827 |
化学品问题 (C语言代码)浏览:1394 |
点我有惊喜!你懂得!浏览:1008 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:333 |
【绝对值排序】 (C++代码)(利用两个库函数——abs()求绝对值 和 sort()快排)浏览:1519 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:711 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:695 |
最长单词 (C语言代码)浏览:1474 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:949 |