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中就处理题中其他的条件,输出满足题意要求的最短路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值