#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
inline int read()
{
int x=,f=;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){x=*x+ch-'';ch=getchar();}
return x*f;
}
int n,first[],to[],next[],val[],cnt;
inline void add(int u,int v,int w)
{
to[++cnt]=v;
next[cnt]=first[u];
first[u]=cnt;
val[cnt]=w;
}
int dp[][],depth1[],depth2[];
int dfs1(int x,int fa)
{
for(int i=first[x];i;i=next[i])
{
int v=to[i];
if(v==fa)continue;
dp[x][]=max(dfs(v)+val[i],dp[x][]);
}
return dp[x][];
}
int vis[];
int dfs2(int x,int fav)
{
int max1=,max2=;
int flag1,flag2;
if(vis[x])continue;
for(int i=first[x];i;i=next[i])
{
int v=to[i];
if(vis[v])continue;
int tmp=dp[v][]+val[i];
if(tmp>max1)
{
max2=max1;
max1=tmp;
flag2=flag1;
flag1=v;
}
if(tmp==max1 || tmp>max2)
{
max2=max1;
max1=tmp;
flag2=v;
}
}
if(x!=)
{
int tmp=dp[x][];
int v=-;
if(tmp>max1)
{
max2=max1;
max1=tmp;
flag2=flag1;
flag1=v;
}
if(tmp==max1 || tmp>max2)
{
max2=max1;
max1=tmp;
flag2=v;
}
}
for(int i=first[x];i;i=next[i])
{
int v=to[i];
if(v==flag1)
dp[x][]=max2+val[i];
else dp[x][]=max1+val[i];
dfs2(v,val[i]);
}
}
int main()
{
n=read();
for(int i=;i<n;i++)
{
int u,v,w;
u=read();v=read();w=read();
add(u,v,w);add(v,u,w);
}
dfs1(,-);
}

最新文章

  1. According to TLD or attribute directive in tag file, attribute end does not accept any expressions
  2. Linux_03------Linux的基本命令
  3. oracle REGEXP_SUBSTR函数
  4. hibernate执行sql的三种方式
  5. ajax 请求超过了5s 还没有返回 的话 就自动取消
  6. 在windows上配置jdk环境
  7. [MATLAB] 利用遗传算法函数求目标函数的最优解
  8. 基于visual Studio2013解决C语言竞赛题之1053洗牌
  9. [学习笔记] TensorFlow 入门之基本使用
  10. popOver 弹出框简单使用
  11. 混合高斯模型(Mixtures of Gaussians)和EM算法
  12. java继承方法规则或规律
  13. FORM调用FORM(标准调客户化&amp;客户化调标准)并执行查询的实现研究
  14. 四、自动化平台搭建-Django-如何做验证码
  15. JavaScript数组方法--includes、indexOf、lastIndexOf
  16. (线性dp,LCS) POJ 1458 Common Subsequence
  17. MySQL去重案列(待更新...)
  18. if判断代码 转变为 流程图
  19. 【Win10】一些零碎不好归档的小总结(原谅我这个该死的标题吧)
  20. Sublime Text 3 调用cmd运行c、java、python、batch file

热门文章

  1. Android SQLite基本用法
  2. MapReduce Input Split(输入分/切片)具体解释
  3. Manager模块 队列 管道 进程池
  4. 关于KMP算法的感想
  5. zipkin环境搭建
  6. ural 1303 Minimal Coverage【贪心】
  7. Python菜鸟之路:Python基础
  8. [DBNETLIB][ConnectionOpen(Connect()).]SQL Server 不存在或拒绝访问 数据库错误 解决办法总结
  9. postgres=# psql -U postgres -h 127.0.0.1 -p 5432 -d dreamstart_dev -w
  10. scala actor编程之对象传递