论多段图的最短路径问题(我认为本质上还是暴力枚举法)

比如说这道题:我向前推进 从0到11的最短路径

按照图可以分5段,v1 是第一阶段 0,v2是第二段 有1,2,3,4

从0开始,路径为0,所以m(1,0)=0;

第二阶段的1点:m(2,1)=9, m(2,2)=7,m(2,3)=3,m(2,4)=2

第三段:第5点有两条路径,选最短的m(3,5)=min(4+m(2,1), 2+m(2,2))=9,然后依次:m(3,6)=min(2+m(2,1),7+m(2,2),11+m(2,4))=11,m(3,7)=min(1+m(2,1),11+m(2,3),8+m(2,4))=10

第四段:m(4,8)=min(6+m(3,5),4+m(3,6))=15  m(4,9)=min(5+m(3,5),3+m(3,6),5+m(3,7))=14

m(4,10)=6+m(3,7)=16

第五段:m(5,11)=min(4+m(4,8),2+m(4,9),5+m(4,10))=16

这样依次算出0到每个阶段各个点的最短距离,要是用程序实现就是简单的暴力枚举

posted @ 2023-10-25 12:52  过移  阅读(23)  评论(0编辑  收藏  举报  来源