题干:

链接:https://ac.nowcoder.com/acm/contest/188/C
来源:牛客网

小w不会离散数学,所以她van的图论游戏是送分的

小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度
小w现在在点x上
她想知道从点x出发经过每个点至少一次,最少需要走多少路

输入描述:

第一行两个整数 n,x,代表点数,和小w所处的位置
第二到第n行,每行三个整数 u,v,w,表示u和v之间有一条长为w的道路

输出描述:

一个数表示答案

示例1

输入

复制

3 1
1 2 1
2 3 1

输出

复制

2

备注:

1 ≤ n ≤ 50000 , 1 ≤ w ≤ 2147483647

解题报告:

和   牛客369的C一样的思维。

AC代码:

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#define ll long long
using namespace std;
const int MAX = 6e5 + 5 ;
const int INF = 0x3f3f3f3f;
struct Node {int to;int w;int ne;
} e[MAX];
struct point {int pos,c;point(){}point(int pos,int c):pos(pos),c(c){}};
int n;
int head[MAX];
int cnt = 0 ;
bool vis[MAX];
void init() {cnt = 0;memset(head,-1,sizeof(head));
}
void add(int u,int v,int w) {e[cnt].to = v;e[cnt].w = w;e[cnt].ne = head[u];head[u] = cnt;cnt++;
} int bfs(int x,int &w) {queue <point> q;int maxx = 0;int retp = x ;//返回的点坐标 memset(vis,0,sizeof(vis) );q.push(point(x,0));vis[x] = 1;point now;while(q.size() ) {point cur = q.front();q.pop();for(int i = head[cur.pos]; i!=-1; i=e[i].ne) {if(vis[e[i].to]) continue;vis[e[i].to] = 1;now.pos = e[i].to;now.c = cur.c + e[i].w;if(now.c>maxx) {maxx = now.c;retp = now.pos;}q.push(now);}//w = maxx;}w = maxx;return retp;
}
int main()
{int x;cin>>n>>x;init();int u,v,w;ll sum = 0;for(int i = 1; i<=n-1; i++) {scanf("%d%d%d",&u,&v,&w);add(u,v,w);add(v,u,w);sum += w;}int ans1 = 0,ans2 = 0;u = bfs(x,ans1);//printf("ans2 = %d\n",ans2);printf("%lld\n",1LL*ans1 + (sum-ans1)*2);return 0 ;
}

【牛客 - 188C】水图(bfs树的直径,思维)相关推荐

  1. 牛客 Cutting Bamboos (主席树)

    题解 - 牛客 Cutting Bamboos (主席树) 题目链接: https://ac.nowcoder.com/acm/contest/889/H 题意: 给你一些竹子,q个询问,问你从第l到 ...

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

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

  3. 【牛客 - 157D】插排树(dfs,树形dp)

    题干: 链接:https://ac.nowcoder.com/acm/contest/157/D 来源:牛客网 一年一度的山东省oi夏令营又开始了,每到这个季节,山东的oier们都会欢聚这里,一起学( ...

  4. 牛客 - 阔力梯的树(树上启发式合并)

    题目链接:点击查看 题目大意:给出一棵树,每个节点都有一个编号,现在规定每个节点的"结实程度"为其子树中所有的编号排序后相邻两个数之差的平方和,现在需要求出每个节点的"结 ...

  5. 牛客练习赛52.Galahad(树状数组维护区间不相同数的和)

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

  6. 牛客网 水题 递推找规律

    链接: https://www.nowcoder.com/acm/contest/91/E 来源:牛客网 小Y买了很多苹果,但他很贪吃,过了几天一下就吃剩一只了.每一天小Y会数出自己的苹果个数X,如果 ...

  7. 牛客练习赛52 B.Galahad (树状数组)

    B.Galahad 链接:https://ac.nowcoder.com/acm/contest/1084/B 来源:牛客网 题目描述 魔女要测试骑士的能力,要求他维护一个长度为 的序列,每次要询问一 ...

  8. 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)

    题干: 链接:https://ac.nowcoder.com/acm/contest/373/C 来源:牛客网 Q市发生了一起特大盗窃案.这起盗窃案是由多名盗窃犯联合实施的,你要做的就是尽可能多的抓捕 ...

  9. nowcoder (牛客)Wannafly挑战赛26 B: 冥土追魂 (思维)

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

最新文章

  1. java如何被调用_java – 如何知道Parse.initialize()是否已被调用?
  2. 安装nvidia-docker2
  3. java(8)——和、|和||、!、^及三目运算符
  4. 8758:2的幂次方表示
  5. STM32F407的硬件I2C
  6. C#中5步完成word文档打印的方法
  7. matlab jp2格式,JP2文件扩展名_JP2是什么格式_JP2文件怎么打开-文件百科
  8. linux网络服务之dns
  9. mie散射理论方程_电磁散射工程应用基础
  10. 只安装python能干什么_你都用 Python 来做什么?
  11. 【操作系统】进程通信-思维导图
  12. andriod socket开发问题小结
  13. PASCAL VOC2012数据集的下载及简单讲解
  14. centos安装jetbrains projector(解决不能复制问题)
  15. hadoop系列三:mapreduce的使用(一)
  16. 如何做一个简单的XX(学生/图书馆)管理系统(一)
  17. 唐彬森:元气森林未被解读的“长期主义”
  18. 2020年中国地理信息产业现状分析,发展前景广阔「图」
  19. 怎么让手机和电脑处于一个局域网 电脑本机发布的项目(非阿里云发布),怎么让手机也可以访问电脑发布的项目
  20. 计算机网络物联网专业课程,物联网工程专业课程

热门文章

  1. C++异常之异常说明
  2. canvas绘制图像image
  3. Codeforces Round #736 (Div. 2)(B-C)
  4. 计算机应用基础试模块5ACCSE,2015年计算机二级《Access》上机最后冲刺卷(1)
  5. 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
  6. php中的解析范围符,如何合理使用php7范围解析操作符
  7. python多线程logger_python多线程logger_Dblogger:一个Python语言实现支持多进程和多线程日志打印高效Python日志库......
  8. python socket send_python socket 连续send,出现粘包问题
  9. 基于python的个人博客系统的设计开题报告_个人博客设计实现开题报告
  10. reactor设计模式 1