poj 2449 Remmarguts' Date

网上都说这是A*算法+dijkstra,下面谈谈我的一些看法。

我 一开始单单用dijkstra,思路是这样的,当前点进行扩展时,每条路所连的点(也有可能是,相同的点,但不同的路)都入队列,这样就相当于把所有的状 态都记录了下来,只要搜索到目标节点并且是第k次搜索到,那么搜索结束,这样就有一个问题,就是MLE,因为状态是指数级增长的。

那么就换网上的主流方法。用dijkstra求各个点到目标节点的最短路径,方法简单,建图时反向,源点是题目给出的目标节点。这个dist[i]就是节点i到估计h[i]。f=g+h。算了,不说了,网上一大堆,还是谈谈我对它的理解吧。

为什么在访问到节点i(不一定是目标节点t),只要是第k次访问,那么就可以退出了。原因简单,因为估价函数的关系,每次出队列的都是最小f。而f恰恰就是当前节点i记录的并且经过i的源点到目标点的visited[i]短路。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值