寻找最短路径的图形问题

时间:2019-03-05 12:35:05

标签: c++14 directed-acyclic-graphs

如何为问题编写C ++代码 出口民意调查显示,现任MLA可能会失去即将举行的选举。党的最高统帅部指示他通过他的选区进行一场帕达亚提佛运动,以提高他的声望。为了最大限度地扩大选区的覆盖范围,政党决定应选择一条返回起点而不需要两次使用任何道路的圆形路线。这条路线不必访问选区的所有城镇。

与体育锻炼相反,MLA希望尽量减少步行距离。他拥有一架直升飞机,因此可以在任何城镇或村庄开始Padayatra。

任务是帮助他找到最短的循环路线。您可以确保始终至少有一个循环路线。 解决方案提示

给定一个权重为W(i,j)的边(i,j),通过临时删除边(i,j),找到从j到i的最短路径,可以找到从i到i到j的最短周期。 i,然后将W(i,j)添加到此路径的长度。系统地执行此操作以找到图中最短的周期。 输入格式

输入的第一行是整数N,1≤N≤1000,即选区的道路数。该选区的公路连接的城镇不超过300个。

接下来的N行指定道路。每条线由三个以空格分隔的整数S,T和D组成,其中S是道路的起点,T是终点,D是道路的长度。每条道路都是双向道路,并且在两个方向之一中仅列出一次。 输出格式

具有最短可能圆形路径的整数距离的单线。 测试数据

最多有300个城镇和村庄,最多有1000条道路。 例 样本输入

4 3 1 5 1 2 4 3 2 3 1 5 44

样本输出1

12

0 个答案:

没有答案