【算法】树的直径

memset(a,0,sizeof(a))

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
struct edge{int from,v,w;}e[maxn*];
int tot,X,n,head,tail,q[maxn],d[maxn],first[maxn];
bool v[maxn];
void insert(int u,int v,int w)
{tot++;e[tot].v=v;e[tot].w=w;e[tot].from=first[u];first[u]=tot;}
void bfs(int s)
{
X=;
memset(d,,sizeof(d));
memset(v,,sizeof(v));//数组,值,范围
head=;tail=;q[]=s;v[s]=;
while(head<=tail)
{
int u=q[head++];
if(d[u]>d[X])X=u;
for(int i=first[u];i;i=e[i].from)
if(!v[e[i].v])
{
v[e[i].v]=;
d[e[i].v]=d[u]+e[i].w;
q[++tail]=e[i].v;
}
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<n;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
insert(u,v,w);
insert(v,u,w);
}
bfs();
bfs(X);
printf("%d",d[X]);
return ;
}

最新文章

  1. MySQL查看数据库相关信息
  2. js获取url方法
  3. sublime text 3.0 安装 HTML-CSS-JS Prettify
  4. extjs 选项卡
  5. springmvc web应用程序 java
  6. Oracle 常用命令大全
  7. 《uname命令》-linux命令五分钟系列之五
  8. 高性能MySql进化论(一):数据类型的优化_上
  9. Thread 常搞混的几个概念sleep、wait、yield、interrupt (转)
  10. opencv + numpy for python
  11. break point
  12. 迅雷Vip账号共享器(持续更新)
  13. C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)
  14. tf.contrib.slim
  15. 转载:揪出MySQL磁盘消耗迅猛的真凶
  16. Lombok插件
  17. CF1082解题报告
  18. HDU 2066 一个人的旅行 最短路问题
  19. ASP.NET Web API实践系列07,获取数据, 使用Ninject实现依赖倒置,使用Knockout实现页面元素和视图模型的双向绑定
  20. 29、HashSet简介

热门文章

  1. 代替iframe的方法
  2. freefcw/hustoj Install Guide
  3. Dubbo分享
  4. django 安装/部署过程
  5. 深入学习 Redis系列
  6. Properties 的list方法 直接将内容放到文本中
  7. BZOJ 1045 糖果传递(思维)
  8. BZOJ4804 欧拉心算(莫比乌斯反演+欧拉函数+线性筛)
  9. COGS 705——回家
  10. 转:Scipy入门