摘要: dij和spfa记录前驱(或者说路径)是一样的,说白了就是不断替换终点,直到终点和起点相同那么就带了尽头而floy是不断替换起点,直到起点和终点相同那么就到了尽头输出路径可以递归输出,或者用一个栈来保存节点(相当于模拟递归)然后再一并输出想dij和spfa这种,因为是不断替换终点,所以如果是递归输出路径的话,是从终点开始递归,然后逆序输出,也就是在递归函数返回后再输出而floy这种,因为是不断替换起点,所以如果是递归输出路径的话,应该是从起点开始递归,然后顺序输出,即递归函数前就输出再递归 阅读全文
posted @ 2012-11-18 17:55 Titanium 阅读(1684) 评论(0) 推荐(0) 编辑
摘要: 推荐技术公众号:不爱睡觉的大猪 粗略讲讲SPFA算法的原理,SPFA算法是1994年西安交通大学段凡丁提出 是一种求单源最短路的算法 算法中需要用到的主要变量 int n; //表示n个点,从1到n标号 int s,t; //s为源点,t为终点 int d[N]; //d[i]表示源点s到点i的最短 阅读全文
posted @ 2012-11-18 17:35 Titanium 阅读(41099) 评论(7) 推荐(13) 编辑
摘要: 欧拉图的判定欧拉通路和欧拉回路——必须是存在欧拉回路的图才能称为欧拉图,仅仅是存在欧拉通路不称为欧拉图无向图的欧拉通路1.图连通可以用dfs去判断图连通或者用高效一点的并查集。用dfs的话其实就是遍历一遍图,并记录图有多少个连通分量,一般来说,在主函数中调用了多少次dfs就是有多少个连通分量。当连通分量数为1时说明图连通,大于1则不连通。用并查集的话,判断p[i]=i是否成立,在一个连通分量重只会有一个p[i]=i,若整个图出现多于一次p[i]=i,那么说明该图不止一个连通分量,即不连通2.度数为奇数的点称为奇点,在无向图欧拉通路中有且仅有两个奇点,这两个奇点必定一个是起点,一个是终点(显然可 阅读全文
posted @ 2012-11-18 12:09 Titanium 阅读(653) 评论(0) 推荐(0) 编辑