(最短路)Shopping

217 篇文章 13 订阅

你刚搬进一套新公寓,有一长串你需要买的东西。不幸的是,买这么多东西需要去很多不同的商店。你想尽量减少购买所需物品所需的驾驶时间。

你的城市被组织成一组由道路连接的十字路口。你的房子和每家商店都在某个十字路口。你的任务是找到从你家出发的最短路线,参观所有你需要购物的商店,然后返回你家。

输入

输入的第一行包含一个整数,即接下来的测试用例数。每个测试用例以包含两个整数N和M的行开始,这两个整数分别是城市中路口和道路的数量。每个整数都在1到100000之间,包括。交叉点的编号从0到N-1。你的房子在0号路口。接下来是M行,每一行包含三个整数X、Y和D,表示X和Y的交叉点由一条长度为D的双向道路连接。接下来的一行包含一个整数S,即你需要访问的商店的数量,包括1到10个。随后的S行每一个都包含一个整数,指示每个商店所在的交叉点。从你家到所有商店都是可能的。

输出

对于每个测试用例,输出一行,其中包含一个整数,即从您的房子出发、访问所有商店和返回您的房子的最短购物旅程的长度。

样例输入

1

4 - 6

0 1 1

1 2 1

1 2 3

3 0 1

0 2 5

1 3 5

3

1

2

3

样例输出

4

参考代码:
https://blog.csdn.net/haojunliang_hao/article/details/76577427

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天学点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值