摘要: 题目链接:http://poj.org/problem?id=3268题目大意,在有向图中,所有点到给定的点一来回所花时间的最小值。刚看到这题第一个想法floyd,不过马上意识到肯定超时,1000^3的复杂度是不能接受的,就想可以以给定点为源点使用Dijkstra这样可以求出所有点回来的路,但是所有点去的路怎么求,想到了搜索(类似于枚举)但这样视乎是不可能的。就想到了可以把所有点去给定点的单向路我们把反过来所花时间大小不变,这样所有点到给定点的距离不就变成了给定点到所有的点的距离,通过转置矩阵正好可以满足需求,同时可以重复的利用Dijkstra函数的接口,最后在所有点所花时间中取最大值即可。V 阅读全文
posted @ 2011-08-23 17:02 我们一直在努力 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 原来这就是传说中的A*.第一次写的A*,多多感谢alpc55推荐的这道好题。先说说原先读到这到题目的想法,以前也听讲过k短路,我还以为就是多做几次dijkstra,或是在dijkstra算法选边的时候控制一些条件。听alpc55说是用A*启发式搜索,直接使用广度优先搜索会暴空间。当时听着也不怎么理解,就是把这些话记下来了。回来搞了两天,也翻了些资料,终于把这个算法弄出来了。 先说说启发式搜索吧。通常在解决问题的时候,我们需要用到搜索算法,由已知状态推出新的状态,然后检验新的状态是不是就是我们要求的最优解。检验完所有的状态实际上就相当于遍历了一张隐式图。遗憾的是,所有的状态组成的状态空间往往是成 阅读全文
posted @ 2011-08-23 10:40 我们一直在努力 阅读(372) 评论(0) 推荐(0) 编辑