#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <functional>
#include <vector>
using namespace std; const int maxn = + ;
const int INF = ;
int n;
bool used[maxn];
vector<int> G[maxn];
vector<int> E[maxn]; //边 int d[maxn]; void init()
{
memset(used, , sizeof(used));
} void dfs(int u)
{
used[u] = true; int size = G[u].size(); for (int i = ; i < size; i++)
{
int v = G[u][i]; //得到这个点的临边
if (!used[v]) {
d[v] = d[u] + E[u][i]; //走临边的情况
dfs(v); //dfs()临边
}
}
} void solve()
{
cin >> n; int u, v, w; for (int i = ; i < n - ; i++) {
scanf("%d%d%d", &u, &v, &w);
G[u - ].push_back(v - );
E[u - ].push_back(w); G[v - ].push_back(u - );
E[v - ].push_back(w);
} //第一遍
init();
fill(d, d + n, INF);
d[] = ; //递归找到最远路
dfs();
int start = ; //得到最大值的下标
int max = -; //为了找到最远路
for (int i = ; i < n; i++)
{
if (d[i] > max && d[i] != INF) { //走过
max = d[i];
start = i; //找到最远路
}
} //http://blog.csdn.net/chao1983210400/article/details/26447001
//树的最长路求法:两次dfs,从任意点出发一次dfs找到的最远结点A,再从A开始进行一次dfs找到的最远点既为树的的直径。
//第二遍
//从最远路出发,dfs找到的最远点一定是树的直径
//现有结论,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后在从这个最远点开始搜,就可以搜到另一个最长路的端点,
//即用两遍广搜就可以找出树的最长路
init();
for (int i = ; i < n; i++) {
d[i] = (i == start ? : INF);
}
dfs(start); int ans = -;
for (int i = ; i < n; i++) {
if (d[i] > ans && d[i] != INF) {
ans = d[i];
}
} ans = * ans + ans * (ans + ) / ; cout << ans << endl; } int main()
{
solve();
return ;
}

蓝桥杯 大臣的旅费_树的最长度_两次DFS的更多相关文章

  1. java实现第四届蓝桥杯大臣的旅费

    大臣的旅费 题目描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大 ...

  2. 2013蓝桥杯JavaA组T10 大臣的旅费(树的直径)

    大臣的旅费   时间限制:1.0s   内存限制:256.0MB 问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大 ...

  3. Java实现 蓝桥杯VIP 基础练习 Huffuman树

    基础练习 Huffuman树 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Hu ...

  4. 历届试题 大臣的旅费-(树的直径+dfs)

    问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  5. 问题 1462: [蓝桥杯][基础练习VIP]Huffuman树

    题目描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0,  p1,  …,  pn-1},用这列数构造Huffman树的过程如下: ...

  6. 【算法】蓝桥杯 试题 基础练习 Huffuman树

    资源限制 时间限制:1.0s   内存限制:512.0MB 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, …, ...

  7. [蓝桥杯2015初赛]生命之树(树状dp)

    在X森林里,上帝创建了生命之树.他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值.上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 ...

  8. Java实现 蓝桥杯VIP 算法训练 FBI树

    问题描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...

  9. [bzoj3991][SDOI2015]寻宝游戏_树链的并_倍增lca_平衡树set

    寻宝游戏 bzoj-3991 SDOI-2015 题目大意:题目链接. 注释:略. 想法:我们发现如果给定了一些点有宝物的话那么答案就是树链的并. 树链的并的求法就是把所有点按照$dfs$序排序然后相 ...

随机推荐

  1. 并发系列(一)-----synchronized关键字

    一 简介 说到并发不得不提的synchronized,synchronized关键字是元老级别的角色.在Java SE 1.6之前synchronized被称为是重量,在1.6之后对同步进行了一系列的 ...

  2. PAT甲题题解-1043. Is It a Binary Search Tree (25)-二叉搜索树

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789220.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  3. [2017BUAA软工助教]团队beta得分总表

    一.累计得分 项目 α例会 α发布 α测试 α展示 α事后 合计 满分 50 10 10 150 10 230 hotcode5 50 10 9 150 9 228 弗朗明哥舞步 50 10 8 13 ...

  4. js页面实时显示时间

    1.通过getMonth()实现获取月份,从0开始计数,需要+1: 2.通过getDay()实现获取星期天数,从0开始,0表示星期日: 3.通过getDate()获取日期. 4.setTimeout( ...

  5. kali 安装使用 sslocal

    shadowsocks 1.安装 shadowsocks apt-get install python-pip sudo pip install shadowsocks 2.配置 shadowsock ...

  6. java词频统计——改进后的单元测试

    测试项目 博客文章地址:[http://www.cnblogs.com/jx8zjs/p/5862269.html] 工程地址:https://coding.net/u/jx8zjs/p/wordCo ...

  7. [转帖] wordpress 的安装过程

    https://blog.csdn.net/qq_34364668/article/details/78116473 下载Wordpress wget http://wordpress.org/lat ...

  8. [转帖]Edge投降Chromium!微软王牌浏览器是如何跪倒的

    Edge投降Chromium!微软王牌浏览器是如何跪倒的   https://tech.sina.com.cn/n/k/2018-12-17/doc-ihmutuec9824604.shtml   谷 ...

  9. CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的实现原理和适用场景

    ConcurrentHashMap代替同步的Map(Collections.synchronized(new HashMap())),众所周知,HashMap是根据散列值分段存储的,同步Map在同步的 ...

  10. iOS 打开系统设置的常用功能

    说明: 跳转到系统设置不同功能界面,只要知道路径都很简单,路径可以自己打开手机设置界面看, 照着模板把对应的名称替换就可以了,但是得知道对应功能的英文名称. 1. prefs:root=Privacy ...