POJ 3114 Countries in War
题目链接
题意:给定一个有向图,强连通分支内传送不需要花费,其他有一定花费,每次询问两点的最小花费
思路:强连通缩点后求最短路即可
代码:
#include
#include
#include
#include
#include
#include
using namespace std;
const i...
分类:
其他好文 时间:
2014-10-21 17:42:29
阅读次数:
217
Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径...
分类:
其他好文 时间:
2014-10-21 17:23:26
阅读次数:
224
第一节、只有五行的算法——Floyd-Warshall(多源最短路径)p152 FW算法完整代码 1 #include 2 int main() 3 { 4 int e[10][10],k,i,j,n,m,t1,t2,t3; 5 int inf=99999999; //用inf(i...
分类:
其他好文 时间:
2014-10-21 13:47:08
阅读次数:
380
基本最短路算法集锦算法总结:①Dijkstra算法用的是贪心策略,每次都找当前最短路径的下一个最短距离点。所以不适合带有负权的情况。至于时间效率通过各种优化可以到达不同的程度。但是朴素的Dijkstra算法永远是最稳定的。②Bellman-Ford算法是Dijkstra的一种变式,它摒弃了贪心的策略...
分类:
其他好文 时间:
2014-10-21 13:42:32
阅读次数:
303
题意:在一个有向图中选一个起点,能从这个起点到达所有其他点,还要保证起点到其他点距离中的最大值最小。
思路:先用floyd求出所有两点之间的距离,然后枚举起点,看以这个为起点能不能到达所有点且最大值最小。...
分类:
其他好文 时间:
2014-10-20 17:29:04
阅读次数:
226
题目大意:有一些码头由若干条边组成,有些时候有一些码头需要维修,这个期间不能使用这个码头。跟换航线的话会有一定的花费,求规定天数内的最小花费。
思路:最短路方面用SPFA就行,关键是动态规划。这个动规我想了很久,结果到最后发现自己想复杂了。我一开始想的是用SPFA处理出每一个不同的段,然后动规。这样做不仅分段不好分,动规也不好写。之后才发现,一共天数才100,枚举起点和终点才10000,...
分类:
其他好文 时间:
2014-10-20 10:07:19
阅读次数:
296
题目:【Description】intgetzuiduanlu(intx)这是一行多么精妙的代码。简明扼要的说明了这个函数要解决的问题。现在我们就要解决一个最短路问题。给定一张N点M边的无向图,求从点1到其余所有点的最短路。这里的最短路指的是,从点1到某个点,边权最大的边最小的一条路径。【Input...
分类:
其他好文 时间:
2014-10-20 09:53:36
阅读次数:
199
这题的基本思路很轻易看懂,就是转换成图的中的最短路径问题。我一直出现TLE的错误,原因就在转换过程太复杂。可以遍历整个表,建立邻接表或者邻接矩阵。问题是这个过程就会是一个o(n^2)的过程。恰恰这道题又一个测试用例的词特别多,于是这个转换过程就行不通了。办法很简单,就是枚举每个词变化一个字母后可能出...
分类:
其他好文 时间:
2014-10-19 21:12:13
阅读次数:
238
题意:n+1个点:0--n,找一条路径从0点出发遍历1--n的点再回到0,每个点可经过不止一次,求最短路径裸的TSP问题,先用Floyd求出各个点之间最短路,再状压dp即可用n+1位二进制表示状态附模板: 1 //首先不难想到用FLOYD先求出任意2点的距离dis[i][j] 2 //接着枚举所有状...
分类:
其他好文 时间:
2014-10-19 17:01:24
阅读次数:
303