tyvj4865 天天和树tree
#include<bits/stdc++.h>
#define MAXN 100000+10
using namespace std;
struct ed{int v,next;}edge[*MAXN];
int n,far1,far2,maxlen,ans=,head[MAXN],pre[MAXN],d[MAXN];
bool is[MAXN],vis[MAXN];
void add(int u,int v){
static int tot=;
edge[++tot].v=v;
edge[tot].next=head[u];
head[u]=tot;
}
void dfs1(int u,int fa,int len){
if(len>maxlen){maxlen=len;far1=u;}
for(int i=head[u];i;i=edge[i].next){
int v=edge[i].v;
if(v!=fa)dfs1(v,u,len+);
}
}
void dfs2(int u,int fa,int len){
pre[u]=fa;
if(len>maxlen){maxlen=len;far2=u;}
for(int i=head[u];i;i=edge[i].next){
int v=edge[i].v;
if(v!=fa)dfs2(v,u,len+);
}
}
void dfs3(int u,int fa,int dis){
d[u]=dis;
for(int i=head[u];i;i=edge[i].next){
int v=edge[i].v;
if(v!=fa)dfs3(v,u,dis+);
}
}
int main(){
scanf("%d",&n);
for(int i=;i<n;i++){
int u,v;
scanf("%d%d",&u,&v);
add(u,v);add(v,u);
}
maxlen=;
dfs1(,,);
maxlen=;
dfs2(far1,far1,);
is[far1]=;
for(int i=far2;i!=pre[i];i=pre[i])is[i]=;
for(int u=;u<=n;u++)
if(is[u]){
for(int i=head[u];i;i=edge[i].next){
int v=edge[i].v;
if(!is[v])dfs3(v,u,);
}
}
for(int i=;i<=n;i++)
if(!is[i])ans=max(ans,d[i]);
printf("%d",ans);
return ;
}
找直径即可,正确性显然(嘿嘿嘿。。。)
其实反证法很容易搞定。。。。
tyvj4865 天天和树tree的更多相关文章
- 树(tree)
树(tree)[题目描述]从前在森林里面有一棵很大的树,树上住着很多小动物.树上有
- JS--插件: 树Tree 开发与实现
日常在Web项目开发时,经常会碰到树形架构数据的显示,从数据库中获取数据,并且显示成树形.为了方便,我们可以写一个javascript的一个跨浏览器树控件,后续可以重复使用.本节分享一个自己开发的JS ...
- 轻量级jquery框架之--树(tree)
前言 在常用的UI组件中,树形组件与数据列表组件可以说是构成一个管理平台基本的两大数据核心组件.树形组件用于系统菜单,数据列表用于数据表现,两者配合即可完成一个简单的数据系统.要实现一个支持复选.工具 ...
- layui实现checkbox的目录树tree
layui.use([ 'tree' ], function() {$ = layui.jquery;form = layui.form;//获取节点数据getTreeData();}); funct ...
- 数据结构(二) 树Tree
五.树 树的定义 树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法. 结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一 ...
- Python与数据结构[3] -> 树/Tree[2] -> AVL 平衡树和树旋转的 Python 实现
AVL 平衡树和树旋转 目录 AVL平衡二叉树 树旋转 代码实现 1 AVL平衡二叉树 AVL(Adelson-Velskii & Landis)树是一种带有平衡条件的二叉树,一棵AVL树其实 ...
- Python与数据结构[3] -> 树/Tree[1] -> 表达式树和查找树的 Python 实现
表达式树和查找树的 Python 实现 目录 二叉表达式树 二叉查找树 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不 ...
- Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...
- 如何使用 JSP JSTL 显示/制作树(tree) 菜单
JSTL里面并没有直接制作tree菜单的元素,因此递归是JSP JSTL显示/制作tree菜单的唯一方法. 以下详述如何制作tree菜单. 首先,在主页面里面增加包含制作树菜单的jsp,例如: 在my ...
随机推荐
- 简单的一句sql
表1 Id Name 1 张三 2 李四 3 王五 表二 Id Name1 Name2 1 1 2 2 2 1 3 2 3 4 1 3 我现在要查出结果如下: Id Name1 Name2 1 张三 ...
- Matrix Again(最大费用最大流)
Matrix Again Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Tota ...
- css设置黑体宋体等(转)
代码如下: .selector{ font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STH ...
- Lambda转sql部分代码保存
public class SqlExpressionTree { public string GetQuerySql<T>(Expression<Func<T, bool> ...
- this和static关键字
this和static关键字 一.关键字this this表示对象自身的引用 this的作用 1.用来区别当前类对象的成员与参数成员 2.用来调用其它构造方法 构造方法: 1.每个类默认情况都有一个默 ...
- [转载] ZooKeeper的Java客户端API
转载自 http://www.cnblogs.com/ggjucheng/p/3370359.html http://zookeeper.apache.org/doc/trunk/javaExampl ...
- 学会WCF之试错法——数据传输
数据传输 服务契约 [ServiceContract] public interface IService { [OperationContract] string GetData(int value ...
- TEXT和BLOB区别
A BLOB is a binary large object that can hold a variable amount of data. The four BLOB types are TIN ...
- input[type='file']样式美化及实现图片预览
前言 上传图片是常见的需求,多使用input标签.本文主要介绍 input标签的样式美化 和 实现图片预览. 用到的知识点有: 1.input标签的使用 2.filelist对象 和 file对象 3 ...
- CVE-2017-11882漏洞利用
CVE-2017-11882漏洞利用 最新Office的CVE-2017-11882的poc刚刚发布出来,让人眼前一亮,完美无弹窗,无视宏,影响Ms offcie全版本,对于企业来说危害很大.在此简单 ...