BF求图的最短路径的时间复杂度是O(MN),这样的时间复杂度并不比迪杰斯特拉算法好,但是BF算法支持图中存在负权的情况,但图中不能存在负圈,因为如果存在负圈,最短路是不存在的,因此BF算法的另一个重要应用是判负圈(如果松弛了N-1次后,还能松弛,就说明存在负圈) 简单写法(没有判断是否存在负圈.判断负圈只要在最后判断能否继续进行松弛即可) #include<iostream> using namespace std; ; <<; int d[maxn],w[maxn],f[maxn…
单源最短路径算法 时间复杂度O(N2) 优化后时间复杂度为O(MlogN)(M为图中的边数 所以对于稀疏图来说优化后更快) 不支持有负权的图 #include<iostream> using namespace std; const int maxn=1024; const int inf=1<<30; int n,m; int d[maxn]; int v[maxn]; int G[maxn][maxn]; void init() { for(int i=1;i<=n;i+…
多源最短路径算法 时间复杂度O(N3) 简单修改可求有向图的传递闭包 #include<iostream> using namespace std; const int maxn=1024; const int inf=1<<30; int d[maxn][maxn]; int n,m; void init() { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) d[i][j]=(i==j?0:inf); } int main()…
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 22123 Accepted: 7990 Description Several currency exchange points are working in our city. Let us suppose that each point specializes in two particular currencies and pe…
Til the Cows Come Home 最短路Dijkstra+bellman(普通+优化) 贝西在田里,想在农夫约翰叫醒她早上挤奶之前回到谷仓尽可能多地睡一觉.贝西需要她的美梦,所以她想尽快回来. 农场主约翰的田里有n(2<=n<=1000)个地标,唯一编号为1..n.地标1是谷仓:贝西整天站在其中的苹果树林是地标n.奶牛在田里行走时使用地标间不同长度的T(1<=t<=2000)双向牛道.贝西对自己的导航能力没有信心,所以一旦开始,她总是沿着一条从开始到结束的路线行进. 根…