返回首页 返回题库

货物运输

C++ 中等 GESP六级真题 #树#深度优先搜索#图论#贪心

题目描述

题面描述

A国有座城市,依次以编号,其中1号城市为首都。这座城市由条双向道路连接,第条道路()连接编号为的两座城市,道路长度为。任意两座城市间均可通过双向道路到达。

现在 A 国需要从首都向各个城市运送货物。具体来说,满载货物的车队会从首都开出,经过一座城市时将对应的货物送出,因此车队需要经过所有城市。A 国希望你设计一条路线,在从首都出发经过所有城市的前提下,最小化经过的道路长度总和。注意一座城市可以经过多次,车队最后可以不返回首都。

输入格式

第一行,一个正整数 ,表示 A 国的城市数量。

接下来 行,每行三个整数 ,表示一条双向道路连接编号为 的两座城市,道路长度为 。

输出格式

一行,一个整数,表示你设计的路线所经过的道路长度总和。

样例1

输入:

4
1 2 6
1 3 1
3 4 5

输出:

18

样例2

输入:

7
1 2 1
2 3 1
3 4 1
7 6 1
6 5 1
5 1 1

输出:

9

数据范围

对于 30% 的测试点,保证 。

对于另外 30% 的测试点,保证仅与一条双向道路连接的城市恰有两座。

对于所有测试点,保证 ,,。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
本题考察树的性质与深度优先搜索。由于城市与道路构成树结构,每条边至少需要走两次(去程和回程),但最后一条到最远节点的路径不需要返回,因此总最小路程等于所有边长度的两倍减去从首都到最远节点的路径长度。需要注意使用长整型存储结果避免溢出。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 2 浏览

讨论(0)