题解:
欧拉路:从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边只通过恰好一次

问你走完这树上所有的点最短路径是什么。
因为树是没有环的,所以你走到叶子结点的时候需要往回走,也就是再走一遍刚刚走过的路。

所以我们确定一条主道路,遇到分支就走一遍(主道路是不需要走两遍的)。
因为所有长度都是已知的,所以最短路径也就是尽量让这一条主路变长。
想一想最长的一条主路,那不就是树的直径吗。
用所有路径长度*2-树的直径即为答案。
两次dfs求树的直径

/*Keep on going Never give up*/
//#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
#define int long long#define endl '\n'
#define Accepted 0
#define AK main()
#define I_can signed
using namespace std;
const int maxn =2e5+10;
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int inf=0x3f3f3f3f;
const ll mod=1e9+7;vector<pair<int,int> > edge[maxn];
int ans,sum,node;
bool visited[maxn];
void dfs(int x,int fa,int now){if(ans<now){ans=now;node=x;}for(auto i:edge[x]){int v=i.first;int w=i.second;if(v==fa) continue;if(!visited[v]){dfs(v,x,now+w);}}
}signed main(){int n;cin>>n;for(int i=0;i<n-1;i++){int x,y,z;cin>>x>>y>>z;edge[x].push_back(make_pair(y,z));edge[y].push_back(make_pair(x,z));sum+=z*2;}dfs(1,-1,0);dfs(node,-1,0);cout<<sum-ans<<endl;return 0;
}

小A与欧拉路(牛客-树的直径)相关推荐

  1. 【牛客 - 369C】小A与欧拉路(bfs树的直径)

    题干: 链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 小A给你了一棵树,对于这棵树上的每一条边,你都可以将它复制任意(可以为0)次(即在这条边 ...

  2. 小A与欧拉路 (树加边求最小权值欧拉路+树的直径)

    链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  3. 小沙的remake(牛客)排序+ 树状数组 + dp

    原题链接:登录-专业IT笔试面试备考平台_牛客网 把a[i]先排序(带着下标排),然后从小到大每次先找下标在范围之内 [ i − b i , i ) 的所有种数,然后加一就是以a[i]为最后一个元素的 ...

  4. 小a与204(牛客寒假算法集训营1题目B)

    链接:https://ac.nowcoder.com/acm/contest/317/B 来源:牛客网 时间限制:C/C++ 1秒, 其他语言2秒 空间限制: C/C++ 262144K,其他语言52 ...

  5. 小d和超级泡泡堂(牛客)

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 小 DDD 在某天醒来发现自己穿越到了小游戏<超级泡泡堂>的世界,他得到了一份地图,一个技能和三个提示. 这个地图共有 ...

  6. 差分数组|小a的轰炸游戏-牛客317E

    小a的轰炸游戏 题目链接:https://ac.nowcoder.com/acm/contest/317/E 思路 这题考查的是对差分数组原理和前缀和的理解. 四个数组分别记录朝着四个方向下放的个数最 ...

  7. POJ2513Colored Sticks(欧拉路加字典树)

    传送门 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namesp ...

  8. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  9. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

最新文章

  1. D - Mike and strings
  2. python【力扣LeetCode算法题库】58-最后一个单词的长度
  3. 怎么在linux下用mysql建库_在MySQL/MariaDB中创建数据库、数据库用户和授予特权(针对Linux平台)...
  4. 【杭电多校2020】Distinct Sub-palindromes【结论】【构造】
  5. WPFの操作文件浏览框几种方式
  6. mysql slowlog中querytime分析_技术分享 | Slow Query Log 使用详解
  7. Note: HTML5 识别语音相关的一些资源
  8. sentinel卫星_IKONOS卫星 遥感影像解译数据 波段
  9. 下列关于线程调度的叙述中,错误的是()。
  10. 做了5年测试连一门语言都没学?逆袭后拿到3个超22K offer!
  11. win10 2016 LTSB
  12. 弘辽科技:拼多多商品搜索热度如何提升?技巧分享
  13. php+redis+保存多个值,php向redis list一次性lPush多个值
  14. 渗透测试实习日记day1
  15. MySQL专题系统归纳快速上手(常用cmd命令,常用函数汇总,SQL语句精讲带示例)适用初学、用法速查
  16. java分词器加词库_Elasticsearch配置IK分词器的远程词库
  17. 常见的数据集合——栈
  18. 互联网时代用什么来拯救你的眼睛?
  19. c1欧洲语言标准是什么水平,CEFR 为什么会成为全球语言标准体系?
  20. 「绩效面谈」精选文章合集

热门文章

  1. 线性回归之数学:求导公式
  2. SpringBoot与SpringMVC的区别是什么?
  3. 英语模板末尾【希望可以记着】
  4. 在各种xDSL技术中,能提供上下行信道非对称传输的是______。正确答案 B
  5. 蓝牙的自适应跳频技术
  6. 研究SLAM,对编程的要求有多高?
  7. 双目视惯雷达SLAM
  8. SWAGAN:基于样式的小波驱动生成模型
  9. 链表问题9——复制含有随机指针节点的链表(进阶)
  10. java调用PageOffice生成word