理想路径(Ideal Path,UVa 1599)

解决UVa 1599问题,利用两次BFS寻找从节点1到节点n的最少颜色边路径,同时保持颜色序列字典序最小。在邻接表数据结构上进行操作,确保路径最优。
摘要由CSDN通过智能技术生成

题意:给一个n个点m条边(2 <= n <= 100000,1 <= m <= 200000)的无向图,每条边上都涂有一种一种颜色。求从结点1到结点n的一条路径,使得经过的变数尽量少,在此前提下,经过边的颜色序列的字典序最小。一对结点间可能有多条边,一条边可能连接两个相同的结点。输入保证节点1可以达到结点n。颜色为1-10^9的整数


分析:两次BFS,第一次从结点n逆向BFS,得到每个节点i到结点n的最短距离step[i],之后再从结点1正向BFS,每次到达一个新节点时保证step的值恰好减少1,如果有多种走法,则选择颜色字典序最小的走;若存在多条相同边,则一同压入队列进行判断,直至到结点n。

PS: 邻接表真的是个好东西啊

参考代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值