首页 > 其他 > 详细

【树形DP】NOI2003 逃学的小孩

时间:2020-04-08 15:10:24      阅读:59      评论:0      收藏:0      [点我收藏+]

题目大意

题目链接

PS:可能出题人为了提高难度故意加了很多废话……实际上题目是很简单的

在一棵树上找3个点A、B、C,使AB+BC最大,且满足AC>AB。

样例输入

4 3
1 2 1
2 3 1
3 4 1

样例输出

4

思路

从一个点出发,找到两条路径,使路径和最大,那么肯定其中一条是树的直径。

设AB是树的直径,剩下直接枚举,找到一个离直径端点最远的C点。

(A、B、C只是个符号而已,可以随便互换的)

不过还有一个条件是AC>AB,所以枚举的时候,选AC和BC里小的作为第二条路径。

比如AC大,就选BC,此时的路径就是B→A→C,满足AC>AB。

这样此题就完成了,先找出直径,再对直径起点和终点跑出对每个点的路径长度,然后计算答案。

【树形DP】NOI2003 逃学的小孩

原文:https://www.cnblogs.com/Midoria7/p/12659638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!