题目链接: https://hihocoder.com/contest/hiho11/problem/1

求树中节点对 距离最远的长度

#include <bits/stdc++.h>
using namespace std; const int N = 1e5 + ;
int n;
vector<int> G[N];
int d[N];
void dfs(int u, int fa)
{
for(int i=; i<G[u].size(); i++) {
int v = G[u][i];
if(v != fa) {
d[v] = d[u] + ;
dfs(v, u);
}
}
} int main()
{
freopen("in.txt", "r", stdin);
scanf("%d",&n);
for(int i=; i<n-; i++) {
int a,b; scanf("%d %d", &a, &b);
G[a].push_back(b);
G[b].push_back(a);
}
d[] = ;
dfs(, );
int mx = ;
int index = -;
for(int i=; i<=n; i++) {
if(mx < d[i]) {
mx = d[i];
index = i;
}
}
//printf("%d\n", mx);
memset(d,,sizeof(d));
dfs(index, );
for(int i=; i<=n; i++) {
if(mx < d[i]) {
mx = d[i];
index = i;
}
}
cout << mx <<endl;
return ;
}
#include <bits/stdc++.h>
using namespace std; const int N = 1e5 + ;
vector<int> G[N];
int n, ans; int dfs(int u,int fa)
{
int l1=-,l2=-;
for(int i=; i<G[u].size(); i++) {
int v = G[u][i];
if(v == fa) continue;
int l = dfs(v, u);
if(l > l1)
l2=l1 , l1=l;
else
l2 = max(l2, l); }
//cout << u <<" "<< l1 <<" "<< l2 <<endl;
ans = max(ans , l1 + l2 + );
// cout << u <<" 最长的路为" <<l1 <<endl;
return l1+;
} int main()
{
//freopen("in.txt", "r", stdin);
cin >> n;
for(int i=; i<n; i++) {
int a,b; scanf("%d %d", &a, &b);
G[a].push_back(b);
G[b].push_back(a);
}
ans = ;
dfs(,);
cout << ans <<endl;
return ;
}

hihoCoder week11 树中的最长路的更多相关文章

  1. hihocoder 1050 树中的最长路(动态规划,dfs搜索)

    hihocoder 1050 树中的最长路(动态规划,dfs搜索) Description 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅 ...

  2. hihocoder#1050 : 树中的最长路(树中最长路算法 两次BFS找根节点求最长+BFS标记路径长度+bfs不容易超时,用dfs做TLE了)

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...

  3. hihoCoder 1050 树中的最长路 最详细的解题报告

    题目来源:树中的最长路 解题思路:枚举每一个点作为转折点t,求出以t为根节点的子树中的‘最长路’以及与‘最长路’不重合的‘次长路’,用这两条路的长度之和去更新答案,最终的答案就是这棵树的最长路长度.只 ...

  4. 题解报告:hihoCoder #1050 : 树中的最长路

    描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅仅可以拼凑成一棵二叉树!还可以拼凑成一棵多叉树——好吧,其实就是更为平常的树而已. 但 ...

  5. hihoCoder #1050 : 树中的最长路

    题意: 求出树上最长路径的长度,并返回. 思路: 刚看到数据<=10^5,假如是单分支的树,那么有5万层,就不能递归,那就用桟实现, 那就要将长度信息保存在另开的数组中,很麻烦!!这题专门给递归 ...

  6. HihoCoder第十一周:树中的最长路

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...

  7. hiho #1050 : 树中的最长路 树的直径

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...

  8. [HIHO] 1050 树中的最长路

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...

  9. HihoCoder1050 树中的最长路 树形DP第三题(找不到对象)

    题意:求出的树中距离最远的两个结点之间相隔的距离. 水题一道,以前只会用路的直径来解. 代码如下: #include<cstdio> #include<cstdlib> #in ...

随机推荐

  1. JOptionPane

    2018-10-30 14:44:43 开始写 作者:tjk123456 来源:CSDN 原文链接 建议阅读官方资料:https://docs.oracle.com/javase/7/docs/api ...

  2. CSS选择符-----元素选择符

       通配选择符(*)           选定所有对象 通配选择符(Universal Selector) 通常不建议使用通配选择符,因为它会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用 & ...

  3. 【Hbase学习之二】Hbase 搭建

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 hbase-2.1.3 一.单机模 ...

  4. python内置函数bin

    bin() 返回一个整数 int 或者长整数 long int 的二进制表示. 代码示例: print(bin(10)) 运行结果: F:\dev\python\python.exe F:/pyCha ...

  5. js异步计时器

    js中同步和异步的区别: 1.同步会阻塞代码执行,而异步不会 2.alert 是同步,setTimeout 是异步 何时需要异步 1.在可能发生等待的情况 2.等待过程中不能像 alert 一样阻塞程 ...

  6. JS中的函数节流throttle详解和优化

    JS中的函数节流throttle详解和优化在前端开发中,有时会为页面绑定resize事件,或者为一个页面元素绑定拖拽事件(mousemove),这种事件有一个特点,在一个正常的操作中,有可能在一个短的 ...

  7. 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统

    区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统

  8. CAT Caterpillar ET Diagnostic Adapter has a powerful function

    As a excellent Professional Diagnostic Tools products, CAT Caterpillar ET Diagnostic Adapter has a p ...

  9. Install kubernetes without yum

    下载最新版本: https://github.com/kubernetes/kubernetes/releases 下载kubernetes.tar.gz即可 解压缩后到cluster目录下 执行ge ...

  10. GLSL写vertex shader和fragment shader

    0.一般来说vertex shader处理顶点坐标,然后向后传输,经过光栅化之后,传给fragment shader,其负责颜色.纹理.光照等等. 前者处理之后变成裁剪坐标系(三维),光栅化之后一般认 ...