dijkstra总结:

     此题属于dijkstra双边权问题,直接使用dijkstra算法找到满足题意条件的边长

 1.     对于边权问题的处理方法: 设定w[ k ] = weight[ u ][k] + w[u]; //求出满足题意要求的边权值

 2.    对于点权问题的处理方法:         w[ k ] = weight[k]+ w[ u ]        //求出满足题意要求点权值

 3.     对于求满足题意最短路径(有多条)求总共的条数的问题:   (有更小的边)num_path[ start]= 1    num_path[ k ]  = numpath[ u ]

                                                                                                         当出现相同的边 num[k] = numpath[  k ] +numpath[ u ];    

 4.     对于求满足题意路径中结点个数问题:     node_path[ k ] = node[ u ] + 1

3.     对于满足题意要求路径输出问题:1. 设定数组dispre保存所有满足要求(不仅仅是长度)路径的父节点,通过disdfs()输出路径

                                                            2.第二种方法:使用dfs算法遍历,设定vector<>path[ maxsize ](二维向量)存储最短路径 长度(注意只满足长度这个条件),在dfs中就处理题中其他的条件,输出满足题意要求的最短路径。
---------------------
作者:月下独喝
来源:CSDN
原文:https://blog.csdn.net/qq_41698081/article/details/90764797
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq_41698081/article/details/90765277