hihoCoder week11 树中的最长路
题目链接: 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 树中的最长路的更多相关文章
- hihocoder 1050 树中的最长路(动态规划,dfs搜索)
hihocoder 1050 树中的最长路(动态规划,dfs搜索) Description 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅 ...
- hihocoder#1050 : 树中的最长路(树中最长路算法 两次BFS找根节点求最长+BFS标记路径长度+bfs不容易超时,用dfs做TLE了)
#1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...
- hihoCoder 1050 树中的最长路 最详细的解题报告
题目来源:树中的最长路 解题思路:枚举每一个点作为转折点t,求出以t为根节点的子树中的‘最长路’以及与‘最长路’不重合的‘次长路’,用这两条路的长度之和去更新答案,最终的答案就是这棵树的最长路长度.只 ...
- 题解报告:hihoCoder #1050 : 树中的最长路
描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅仅可以拼凑成一棵二叉树!还可以拼凑成一棵多叉树——好吧,其实就是更为平常的树而已. 但 ...
- hihoCoder #1050 : 树中的最长路
题意: 求出树上最长路径的长度,并返回. 思路: 刚看到数据<=10^5,假如是单分支的树,那么有5万层,就不能递归,那就用桟实现, 那就要将长度信息保存在另开的数组中,很麻烦!!这题专门给递归 ...
- HihoCoder第十一周:树中的最长路
#1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...
- hiho #1050 : 树中的最长路 树的直径
#1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...
- [HIHO] 1050 树中的最长路
#1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...
- HihoCoder1050 树中的最长路 树形DP第三题(找不到对象)
题意:求出的树中距离最远的两个结点之间相隔的距离. 水题一道,以前只会用路的直径来解. 代码如下: #include<cstdio> #include<cstdlib> #in ...
随机推荐
- <3>lua字符串
1.字符串 <1>字符串相连/加法 .. local str = "abc" str = str .. 7 --字符串与数字相连 print(str) --abc7 ...
- Solid Dominoes Tilings (轮廓线dp打表 + 容器)
第一步先打一个表,就是利用轮廓线DP去打一个没有管有没有分界线组合数量的表 #include<bits/stdc++.h> using namespace std; ; <<; ...
- JDK历史版本下载地址
JDK历史版本下载地址: http://www.oracle.com/technetwork/java/archive-139210.html -startupplugins/org.eclipse. ...
- freedom is a kind of responsibility
张维迎教授在2017年7月1日北大国发院2017届毕业典礼上的发言<自由是一种责任> 张维迎:自由是一种责任 本文为张维迎教授在2017年7月1日北大国发院2017届毕业典礼上的发言 ...
- Jmeter下进行ip伪造
转至https://blog.csdn.net/xingchao416/article/details/53506051 1.首先获取一些闲置的ip地址,且必须为固定地址,不能是自动获取的地址,方法: ...
- svnrdump:E175000:SSL is not supported错误的解决
参考博客:https://www.cnblogs.com/jkko123/p/6358461.html 参考博客:https://blog.csdn.net/w171066/article/detai ...
- @Configuration与@Bean作用
Spring的Java配置方式是通过@Configuration和@Bean这两个注解来实现 @Configuration可以作用在任意类上,表示该类是一个配置类,其实就相当于一个xml配置文件. @ ...
- 怎样从外网访问内网Lighttpd?
本地安装了一个Lighttpd,只能在局域网内访问,怎样从外网也能访问到本地的Lighttpd呢?本文将介绍具体的实现步骤. 准备工作 安装并启动Lighttpd 默认安装的Lighttpd端口是80 ...
- right spindle supply short to gnd
hardware guy found that the R1004 lead to this error, but this error should not be checked, because ...
- eclipse的svn插件添加代理访问svn
1.首先找到插件配置文件 C:\Users\Administrator\AppData\Roaming\Subversion这个目录下的servers文件 打开找到 # http-proxy-host ...