AcWing 3760. 最大剩余油量(树的最长路径)
2021-07-19 19:05
标签:ace 简单 strong stream turn std space 存在 问题 一个国家由 n 个城市组成,这 n 个城市由 n?1 条双向道路连接,呈一个树形结构。 每个城市都设有加油站,在第 i 个城市可以购买 wi 升汽油。 汽车在道路上行驶,毫无疑问也会消耗汽油,每条道路的具体耗油量也会给出。 现在,需要制定一条汽车的行进路线,从任意城市 s 出发,经过一条简单路径,到达任意城市 e 结束。 注意,行进路线也可以只包含一个城市(也就是哪都没去)。 汽车初始时油箱是空的,但是可以在路线中经过的每个城市购买汽油,包括开始城市和最终城市。 如果在一条行进路线中,汽车沿一条道路从某一城市开往另一城市时,现有油量小于该条道路所需油量,那么就说明这条行进路线行不通。 请问,在保证行进路线合理的情况下,汽车在抵达最终城市后,可以剩余的最大油量是多少? 再次提醒,汽车在最终城市也可以加油。 输入:第一行包含整数 n。 第二行包含 n 个整数 w1,w2,…,wn。 接下来 n?1 行,每行包含三个整数 u,v,c,表示城市 u 和城市 v 之间存在一条双向道路,耗油量为 c。 这道题是选出一条路径使最大剩余油量最大,即树的最长路径(树的直径)问题。点权为正,边权为负。 AcWing 3760. 最大剩余油量(树的最长路径) 标签:ace 简单 strong stream turn std space 存在 问题 原文地址:https://www.cnblogs.com/Hfolsvh/p/15025542.html题目
输入输出
输出:一个整数,表示可能的最大剩余油量。思路
可以枚举一条路径的最高点,该点的最长路径由根节点的点权+子树的最长长度+子树的次长长度。用递归来做,递归返回的是子树往下的最长长度,计算出后,更新最长路径长度。写的太混乱了#include
文章标题:AcWing 3760. 最大剩余油量(树的最长路径)
文章链接:http://soscw.com/essay/106368.html