![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
joy_go
这个作者很懒,什么都没留下…
展开
-
最短路算法(Dijkstra朴素版)
个人理解:这个求单源最短路的方法和Prim算法求最小生成树非常相似,都是从未加入顶点 中找出一个顶点权值最小的,然后加进顶点集当中,唯一不同的是Prim更新的是新加入点与 其他点的最小权值,而Dijkstra是更新源点到该点总权值(或者说是进行一轮松弛)。 再次copy下维基百科: 算法描述 这个算法是通过为每个顶点 v 保留目前为止所找到的从s到v的最短路径来工原创 2012-11-15 17:13:35 · 680 阅读 · 0 评论 -
最短路算法(Floyd)
HDU 2544 用作测试模板是否正确 #include const int inf = 0xfffff; const int N = 510; int dis[N][N]; void initi(int n){ int i, j; for(i = 0;i < n;i++) for(j = 0;j < n;j++) dis[i][j] = inf; }原创 2012-12-04 20:00:38 · 467 阅读 · 0 评论 -
Codeforces 296D/295B(Greg and Graph)
题意:一个有向图,给出每两点间的距离,然后再给出一个删点的序列X,然后求出在删掉Xi前任意两点间的最短路的总和,然后把Xi这个顶点删去,连同和它相连的边; 思路:一道floyd的好题,这题可以倒着做,首先一开始是一个空图,然后往里面加删点序列X里面的点,顺序是删点序列X的逆序,然后每次求出加完点后最短路总和即可。 #include #include #include #define LL原创 2013-08-24 08:50:24 · 1154 阅读 · 0 评论 -
最短路算法(SPFA)
SPFA算法(Shortest Path Faster Algorithm),也是求解单源最短路径问题的一种算法,用来解决:给定一个加权有向图G和源点s,对于图G中的任意一点v,求从s到v的最短路径。 SPFA算法是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算,他的基本算法和Bellman-Ford一样,并且用如下的方法改进: 1、第二步,不是枚举所有节点,而是通过队列来原创 2012-12-03 21:39:28 · 603 阅读 · 0 评论 -
Codeforces 208C(Police Station)
题意:给出一个无向图,边权都为1,居民们需要从顶点1走到顶点n,而且只走最短路;然后让你在1~n中选一个顶点放置警察局,如果一个顶点放置了警察局,那么和这个顶点相连的道路都是安全的;求让你选择一个顶点放置警察局,使所有最短路中含有安全道路的平均值最大;其实就是sum(每一条最短路中含有安全边的数量)/ 最短路数;不同最短路的意思是如果两条路径至少含有1条不同的边就是不相同,不懂就去看题目样例吧-原创 2013-09-03 23:17:55 · 1089 阅读 · 0 评论 -
floyd求最小环
模板是求顶点大于2的最小环;小于等于2的就将g[i][i]赋值为0,并去掉i,j,k不能相等的判断就可以了,模板对应HDU 1599 #include #include #include #include using namespace std; const int N = 110; int g[N][N], dis[N][N]; int main(){ int T,原创 2013-09-13 20:17:05 · 1156 阅读 · 0 评论 -
HDU 4034(Graph)
题意:给出一个有向图两两顶点间的最短路,原创 2014-04-21 20:34:11 · 610 阅读 · 0 评论 -
最短路算法(Dijsktra + 优先队列)
模板,对应测试题HDU 2544 #include #include #include #include #include #include #define pb push_back #define mp make_pair #define sz(x) ((int)(x).size()) using namespace std; const int N = 1010; con原创 2013-09-08 01:35:37 · 1382 阅读 · 0 评论