poj2631

求一棵树的直径,所谓直径就是树上距离最远的两个点!

树形动归,每个点的为根的子树的最长向下链和次长链的和!

当然也可以二次深搜!

————————————————————————————————————————————————————

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<iostream>
 5 using namespace std;
 6 const int maxn=10010;
 7 struct edge
 8 {
 9     int u,v,w,next;
10 }e[maxn<<1];
11 int head[maxn],js;
12 long long ans;
13 long long ml[maxn],sl[maxn];
14 void addage(int u,int v,int w)
15 {
16     e[++js].u=u;e[js].v=v;e[js].w=w;
17     e[js].next=head[u];head[u]=js;
18 }
19 void dfs(int u,int fa)
20 {
21     for(int i=head[u];i;i=e[i].next)
22     {
23         int v=e[i].v;
24         if(v!=fa)
25         {
26             dfs(v,u);
27             if(ml[v]+e[i].w>ml[u])
28             {
29                 sl[u]=ml[u];
30                 ml[u]=ml[v]+e[i].w;
31             }
32         }
33         else if(ml[v]+e[i].w>sl[u])
34             sl[u]=ml[v]+e[i].w;
35     }
36     if(ml[u]+sl[u]>ans)ans=ml[u]+sl[u];
37 }
38 int main()
39 {
40     int u,v,w;
41     while(scanf("%d%d%d",&u,&v,&w)==3)
42     {
43         addage(u,v,w);
44         addage(v,u,w);
45     }
46     dfs(1,0);
47     cout<<ans;
48     return 0;
49 }
View Code

 

转载于:https://www.cnblogs.com/gryzy/p/9842094.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原来做的一个语义搜索软件的界面

今天得知NGW&#xff08;New Generation Web&#xff0c;关于语义网络方面的&#xff09;课程及实验作业成绩已公布&#xff0c;急去查看&#xff0c;但与想象中相去甚远。 罢了&#xff0c;凡事但求尽力而为&#xff0c;末了问心无愧即可&#xff0c;其它种种皆是虚幻。 附&am…

tcp为什么需要3次握手和3次握手的过程

网络上关于tcp连接时的3次握手相关的文章很多&#xff0c;在此不再重复&#xff0c;个人总结如下&#xff0c;如有不正确之处请给予指正。 tcp“三次握手”的目的是: 为了防止已经失效的请求报文段突然又传送到了服务器端&#xff0c;因而产生错误。 tcp的3次握手过程: (1)、…

C使用FILE指针文件操作

文件 文件的基本概念 所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称&#xff0c;叫做文件名。例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的&#xff0c;在使用时才调入内存中来。从不同的角度可对文件作…

java 守护线程 run_java守护线程(后台线程)

/*1.让各个对象或类相互灵活交流2.两个线程都冻结了&#xff0c;就不能唤醒了&#xff0c;因为根据代码要一个线程活着才能执行唤醒操作&#xff0c;就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候&#xff0c;里面的两个线程都处于冻结状态&#xff0c;这样就卡住了…

2年质保期刚过就翘辫子,这是什么骚设计?

1.终于又坏了一件自从开始写聊聊身边的嵌入式这个系列&#xff0c;便常常有一个邪恶的想法在脑袋里盘旋&#xff0c;总盼着家里哪件电器赶紧出点毛病。你知道&#xff0c;如果不把一个东西拆的七零八落&#xff0c;覆水难收&#xff0c;那是不能满足咱们的好奇心的。都说念念不…

剑指offer---用两个栈实现队列

题目&#xff1a;用两个栈实现队列 要求&#xff1a;用两个栈来实现一个队列&#xff0c;完成队列的Push和Pop操作。 队列中的元素为int类型。 1 class Solution2 {3 public:4 void push(int node) {5 6 }7 8 int pop() {9 10 } 11 12 priva…

Java内存泄露原因详解

一、Java内存回收机制 不论哪种语言的内存分配方式&#xff0c;都需要返回所分配内存的真实地址&#xff0c;也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的&#xff0c;这些对象的创建都是在堆&#xff08;Heap&#xff09;中分配的&#xff0…

java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4

最近新项目要需要更新发布版本号&#xff0c;用于标识发布的版本&#xff0c;网上找了下插件&#xff1a;buildnumber-maven-plugin 1.4 。记录下自己使用成功过程中遇到的各种问题&#xff0c;以供需要的朋友参考&#xff1a;插件官方网站&#xff1a;http://www.mojohaus.org…

如何分割合并ISO文件

今天打算在电脑上装Androd系统&#xff0c;谷歌考虑到了这方面的需求&#xff0c;特意制作了liveandroidv0.3.iso操作系统的镜象文件供开发人员下载。没有人愿意为了装这个系统而把原先的系统换掉&#xff0c;许多人也只是想玩票一下。这样就只能用虚拟机安装了&#xff0c;虚拟…

推荐Linux内核书籍

大家好&#xff0c;挺久没推荐内核相关的书籍了&#xff0c;今天给大家推荐一本我觉得不错的书&#xff0c;这本书籍的作者叫做李云华&#xff0c;书籍名字叫《独辟蹊径品内核》&#xff0c;他的写作思路非常不错&#xff0c;他会引用内核代码中的内容&#xff0c;给大家剖析讲…

3个Gmail 邀请,先进先出!!

3个Gmail 邀请&#xff0c;先进先出&#xff01;&#xff01;转载于:https://www.cnblogs.com/zhangqh/archive/2005/01/27/98222.html

互联网公司的项目经理:客户伤不起

互联网公司的项目经理&#xff1a;客户伤不起 前面《互联网公司的项目经理&#xff1a;大同与大不同》谈到了互联网公司的项目经理面对的客户和传统软件公司的不同&#xff0c;主要表现在客户与项目经理是同一组织内的、是和你一个战壕共同战斗的&#xff0c;很多情况甚至荣辱与…

java照片墙_基于jQuery实现照片墙自动播放特效

一个动态展示图片的页面&#xff1a;功能&#xff1a;定时从后台取数据&#xff0c;进行页面图片追加。对已经在页面中的图片&#xff0c;进行放大缩小动画展示。目前我们用于微信新关注用户头像展示。抽奖body{background-color:#000;text-transform:uppercase;color:#fff;pos…

位运算实现四则运算(C++实现)

前言 Leetcode中有一道这样的题:给定两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 如果正常的四则运算符号不允许使用&#xff0c;呢这道题的考点我觉得应…

使用croc命令在Linux系统电脑之间传输文件和文件夹

‍在两台或多台计算机之间传输文件的方法有很多。‍你可以使用基于服务器的文件共享工具&#xff0c;点对点文件共享app&#xff0c;U盘&#xff0c;外部硬盘驱动器&#xff0c;SCP&#xff0c;NFS&#xff0c;FTP&#xff0c;HTTP&#xff0c;云存储平台等等。本文将介绍一个名…

Lady Bird

La Ballade of Lady Bird[Lady Bird]Bird : Lady? Lady : Yes Bird? Bird : Its cold Lady : I know Lady : Bird... I cannot see a thing Bird : Its all in your mind Lady : Im worried Bird : No one will come to see us Lady : Maybe they come but we just dont see …

redhat oracle 开机自启动

一&#xff1a;修改 /etc/oratab N 改为Y 二&#xff1a;修改dbstart dbshut su - oracle cd $ORACLE_HOME/bin vi dbstart 找到 ORACLE_HOME_LISTNER/ade/vikrkuma_new/oracle ###########9i下没有&#xff0c;不用修改 改为 ORACLE_HOME_LISTNER$ORACLE_HOME 同样道理修改d…

Android中的5种数据存储方式

Android中的5种数据存储方式 Android中的5种数据存储方式 数据存储在开发中是使用最频繁的&#xff0c;在这里主要介绍Android平台中实现数据存储的5种方式&#xff0c;分别是&#xff1a; 1 使用SharedPreferences存储数据&#xff1b; 2 文件存储数据&#xff1b; 3 SQLit…

揭秘 | 小米最新款12PRO智能动态刷新率技术原理

1. 背景最新发布的小米手机12pro提到了一个安卓系统上的新技术&#xff1a;智能动态刷新率。这到底是个啥技术&#xff1f;让雷军同学可以大吹特吹。智能动态刷新海报要解释上面的技术&#xff0c;不得不提刷新率和帧率这两个概念。在平时的生活当中&#xff0c;你可能也会经常…

java怎么编程方程_[编程入门]自定义函数求一元二次方程-题解(Java代码)

令一元二次方程判别式&#xff1a; b2 - 4ac为变量P**当P > 0时&#xff1a;**x1 (-bsqrt(P)) / 2ax1 (-b-sqrt(P)) / 2a**当P 0时&#xff1a;**x1 x2 -b / 2a**当P < 0时&#xff0c;一元二次方程无解当存在共轭复数&#xff1a;**x1 -b/2a sqrt(-P)ix1 -b/2a …