图论
M_Y_Y_
这个作者很懒,什么都没留下…
展开
-
最短路之dijkstra算法
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。问题描述:在无向图 G=(V,E) 中,假设每条边 E[i] 的长度为 w[i],找到由顶点 V0 到其余各点的最短路径。(单源最短路径) 2.算法描述1)算法思想:设G=(V,E)是一个带权有向图,把图中顶...转载 2018-06-07 20:25:12 · 483 阅读 · 0 评论 -
最小生成树详解 prim+ kruskal代码模板
原创链接:https://www.cnblogs.com/aiguona/p/7223625.html最小生成树概念:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。最小生成树其实是最小权重生成树的简称。 prim:概念:普里姆...转载 2018-06-06 19:51:02 · 364 阅读 · 0 评论 -
最短路之Floyd算法
原创链接:http://www.cnblogs.com/aiguona/p/7226446.html1.介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题。2.思想: Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(...转载 2018-06-07 20:37:17 · 315 阅读 · 0 评论 -
最短路之Bellman-Ford算法
说明:Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。适用条件&范围:单源最短路径(从源点s到其它所有顶点v);有向图&无向图(无向图可以看作(u,v),(...转载 2018-06-08 20:41:56 · 430 阅读 · 0 评论 -
二分图---染色法
概念就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。从其中一个点开始判断,将跟它相连的点染成和它不同的颜色,如果最后相连的点有相同的颜色,则不是二分图。#include <algorithm>#include <iostream>#include &am原创 2018-11-17 09:58:12 · 1717 阅读 · 0 评论 -
ZOJ Problem Set - 4124 Median(山东省第十届省赛L题)
题目链接题意:n个数,下标从1~n,输入m个关系(输入的为下标),前面的数大于后面的数,问这些数中可能是中位数的标为1,不可能的为0。思路:floyd跑一遍就行了。注意前后矛盾的就是不可能的情况,全部为0,一个数不可能比本身大,a>b之后,b不可能大于a。当时做的时候题意没读对,以为是只有能确定为中位数的才输出1,原来是只要有可能就输出1。代码如下:#include ...原创 2019-05-15 20:08:39 · 215 阅读 · 0 评论 -
CF 449B Jzzhu and Cities (单源最短路SPFA)
codeforces 449B题意:n个城市,从1~n编号,m条公路,k条铁路,铁路都是连接城市1和城市s(s由输入得到)的,问最多拆除几条铁路,各个城市到城市1的距离仍最短。思路:数据量有点大,我用的SPFA,算出包括所有铁路公路在内的城市1到其他城市的最短路,然后后期删除不需要的铁路,用一个数组记录每个点的最短路的条数,主要是为了记录到该点长度相同的道路有几条,即入度,方便删除铁路。...原创 2019-07-29 09:02:25 · 188 阅读 · 0 评论