
A* || IDA*
Chester_King
虽千万人,吾往矣。
展开
-
【BZOJ】1085 [SCOI2005]骑士精神 IDA*
题目传送门好吧,对于一个初学者,我连自己打的是A*还是IDA*都不知道……这题如果用BFS来做肯定是要TLE的,那么我们就能想到用BFS的进化版——A*来做。可以说BFS是一种特殊的A*:因为用A*的思想来考虑BFS,就会发现BFS的估价函数永远等于0。A*比BFS就多了一个估价函数,但是A*却比BFS更快、更强!设估价函数f(n)=g(n)+h(n),g(n)为当前搜索层数,原创 2017-04-15 10:21:00 · 641 阅读 · 0 评论 -
【BZOJ】1975 [Sdoi2010]魔法猪学院 k短路(最短路径+A*)
题目传送门这题的正解——k短路还是挺好想到的,只不过题目告诉你的是路径长度总和,叫你求k的值。其他的和k短路的思想一模一样。不过据说这题卡stl中的priority_queue,那么把priority_queue换成push_heap和pop_heap函数就好了。关于push_heap等函数的介绍,看这里就行了,该博主讲的已经很详细了。附上AC代码:#include #inc原创 2017-04-16 14:58:51 · 1120 阅读 · 0 评论 -
【POJ】2449 Remmarguts' Date k短路(最短路径+A*)
题目传送门题目大意就是给出起点s,终点t和一个参数k,以及一张图,问s到t间的k短路。对于所有k短路问题,我们都可以用最短路+A*的方法来解决。首先,我们根据输入数据建两张图:一张是和输入数据边的方向相同的正图,另一张是和输入数据边的方向相反的反图。我们对反图以终点t为起点做一遍最短路(我用的是SPFA),可以得到所有点到终点t的最短距离。然后从起点s开始做一遍A*,第k次遍历原创 2017-04-15 21:40:25 · 507 阅读 · 0 评论 -
【BZOJ】1598 [Usaco2008 Mar]牛跑步 k短路(最短路径+A*)
题目传送门补一发k短路(虽然以前会的,但是现在好像都忘光了……在学习的过程中还是要多复习啊)。恩?这题不就是k短路的模板题吗?题意已经很明确了,就是让我们求前k短路的长度,若不存在则输出-1。然后就是喜闻乐见的套模板……然后就是打板子的时候了。不过OLE也是比较少见的,今天竟然被我弄出来了一个:已经找完k短路了,但是忘记退出a*函数了……打板子也不能放松啊,基础才是最重要的。(原创 2017-07-25 20:25:44 · 330 阅读 · 0 评论