最短路径:poj1125 - Stockbroker Grapevine(多源最短路径,floyd)poj1502 - MPI Maelstrom(单源最短路径,dijkstra,bellman-ford,spfa)poj1511 - Invitation Cards(单源来回最短路径,spfa邻接...
分类:
其他好文 时间:
2015-05-04 21:42:57
阅读次数:
218
Bellman-Ford算法与另一个非常著名的Dijkstra算法一样,用于求解单源点最短路径问题。Bellman-ford算法除了可求解边权均非负的问题外,还可以解决存在负权边的问题(意义是什么,好好思考),而Dijkstra算法只能处理边权非负的问题,因此 Bellman-Ford算法的适用面要...
分类:
编程语言 时间:
2015-05-04 15:06:24
阅读次数:
238
本来想用Floyd算法,可惜超时,毕竟复杂度太高,而且并没有必要求出任意两点间的最短距离。
求两点间的最短路有两种方法,dijkstra和Bellman ,前者不能有负圈,后者可以有负圈,另外,Floyd也可以求带负圈的最短距离。
我们只需要求出x到其他个点的最短距离和个点到它的最短距离就行了。当然,我所写的还求了很多多余的量,是可以优化的。
#include
#include
#inclu...
分类:
其他好文 时间:
2015-04-30 21:58:15
阅读次数:
202
最短路Bellman的算法,只需用到判断是否存在负圈的部分,因为只要存在负圈,则一定有一条路可以返回起点并且时间还原(一开始题意理解的不好,注意如果返回起点的时间为负数,其实也是可以的,应该是默认了返回起始时间,因为时间不能为负。) 所以,实质就是判断是否存在负圈。
#include
#include
#include
using namespace std;
const int INF = ...
分类:
其他好文 时间:
2015-04-29 19:53:30
阅读次数:
139
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int INF = 10000000;
int n,v,d[10000];
struct node {
int f,e;
int w;
...
分类:
其他好文 时间:
2015-04-25 10:46:16
阅读次数:
187
题目传送门 1 /* 2 最短路(Bellman_Ford):求负环的思路,但是反过来用,即找正环 3 详细解释:http://blog.csdn.net/lyy289065406/article/details/6645778 4 */ 5 #include 6 #include...
分类:
其他好文 时间:
2015-04-24 22:29:47
阅读次数:
108
题目链接
https://icpcarchive.ecs.baylor.edu/external/68/6800.pdf
bellman-ford照模板打了一段,能够找到负权回路,问题就是判断0点在不在负权回路中了,于是写了个记忆化dfs。
#include
#include
#include
#include
#include
using namespace std;
#de...
分类:
其他好文 时间:
2015-04-24 09:05:46
阅读次数:
156
基础: 1.LCS 2.LIS 3.最短编辑距离 4.最优二叉搜索树 5.最优三角剖分 6.Bellman-ford算法 7.0-1背包 8.各种扩展的背包 9.最大子段和难: 1.树形dp 2.先排序后dp 3.基于强连通分量的dp---插头dp 4.dp加速---四边形...
分类:
其他好文 时间:
2015-04-15 21:26:29
阅读次数:
121
题意:给出n个房间,初始在房间1有100的能量值,每次进入一个房间,能量值可能增加也可能减小,(是点权,不是边权),问能否到达终点的时候能量值还为正这题自己写的时候wa--wa--后来看了题解,还是wa---wa---题解很详细http://blog.csdn.net/freezhanacmore/...
分类:
其他好文 时间:
2015-04-15 00:52:08
阅读次数:
128
Dijkstra(迪杰斯特拉)算法,用于计算一个节点到其他所有节点的最短路径。要注意的是这个算法中路径的权值不能有负边,如果有负边的话要运用bellman
ford算法。
学习了一下dijkstra算法,感觉跟最小生成树的Prim算法有点类似。感觉dijkstra也是一个贪心的策略,用集合S表示的是已经找出最小路径的点,用dis[]来表示每个点当前距离源点的最短距离。再用一个数组来存储两点之...
分类:
编程语言 时间:
2015-04-12 09:25:20
阅读次数:
180