题目传送门

桃花

题目描述

桃花一簇开无主,可爱深红映浅红。

                                        ——《题百叶桃花》

桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花。HtBest有一个魔法棒,摘到树上任意一条链上的所有桃花,由于HtBest法力有限,只能使用一次魔法棒,请求出Htbest最多可以摘到多少个桃花。

输入描述:

第一行有一个正整数n,表示桃树的节点个数。
接下来n-1行,第i行两个正整数a,b

输出描述:

第一行一个整数,表示HtBest使用一次魔法棒最多可以摘到多少桃花。
输入
3
1 2
2 3
输出
3
题意:就是求数的直径,不过本题求的是顶点数,树的直径的一个性质:距某个点最远的叶子节点一定
是树的某一条直径的端点。这样我们先dfs求一个点的最远端点,再从这个点dfs一次。也可以百度一下,
大意是反证距离任意点最远的点都是直径的端点。
代码:
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<queue>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long long ll;
typedef pair<int,int> PII;
#define mod 1000000007
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
//head
#define N 1000005
vector<int>V[N];
int dis[N];
int xp=-;
int ans=;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>'') {if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
inline void write(int x)
{
if(x<) putchar('-'),x=-x;
if(x>) write(x/);
putchar(x%+'');
}
void dfs(int a)
{
if(xp<dis[a])
{
xp=dis[a];
ans=a;
}
for(int v: V[a])
{
if(dis[v]==-)
{
dis[v]=dis[a]+;
dfs(v);
}
}
}
int main()
{
//ios_base::sync_with_stdio(0); cin.tie(0);
int n;
int a,b;
n=read();
for(int i=;i<n-;i++)
{
a=read();
b=read();
V[a].pb(b);
V[b].pb(a);
}
for(int i=;i<=n;i++) dis[i]=-;
dis[]=;
dfs();
memset(dis,-,sizeof(dis));
dis[ans]=;
xp=-;
dfs(ans);
write(xp+);
}

最新文章

  1. ORACLE EXP/IMP的使用详解
  2. C++/CLI——读书笔记《Visual C++/CLI从入门到精通》 第Ⅳ部分
  3. java基础比较好的笔记总结
  4. web缓存
  5. jackson反序列化时忽略不需要的字段(zhuan)
  6. dfs介绍
  7. php关联不上mysql解决办法
  8. 【HDOJ】4345 Permutation
  9. careercup-C和C++ 13.6
  10. 鼠标操作[OpenCV 笔记10]
  11. Girls&#39; research
  12. 【HDOJ】2386 Dart Challenge
  13. .NET运行机制
  14. cadence电源和地平面的处理
  15. Java中解决前端的跨域请求问题
  16. Solrcloud(Solr集群)
  17. jsp页面添加时间
  18. Spring Boot&mdash;05页面跳转
  19. iOS8 生成二维码与条形码
  20. HTTP请求方式及状态码

热门文章

  1. AES加密的C语言实现
  2. zabbix入门之添加监控项
  3. 变量管理 dotenv 的 使用
  4. 转贴健康资讯:神奇的“XX水”,死了一茬又来一茬?
  5. Django学习笔记-修改Django的默认的数据库
  6. CentOS 7 LNMP环境搭建 Zabbix3.4
  7. 数学相关【真&#183;NOIP】
  8. struts2的作用是什么
  9. python2和python3同时存在电脑时,安装包时的的命令行
  10. MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作