5、图论
文章平均质量分 65
童凌
当你停下来休息的时候,不要忘记别人还在奔跑!——一个普通的软件工程专业学生
展开
-
[图] 图论基本介绍
图是表示一些事物或者状态的关系的表达方法。由于许多问题都可以归约为图的问题,所以我们创建了很多跟图相关的算法。因此,在程序设计竞赛中有很多需要直接对图进行处理或者间接用图来解决的问题。1、图是什么?图由顶点和边组成。顶点代表对象。在示意图中,我们使用点或圆来标志。边表示的是两个对象的连接关系。在示意图中,我们使用连接两顶点之间的线段来表示。顶点的集合是V,边的集合是E的图,记为G原创 2015-08-10 11:11:49 · 4140 阅读 · 0 评论 -
[最小生成树] poj 1251 Jungle Roads
A - Jungle RoadsTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 1251DescriptionThe Head Elder of the tropical island of原创 2015-08-26 17:38:08 · 433 阅读 · 0 评论 -
[二分图最大匹配] poj 3041 Asteroids
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17609 Accepted: 9578 DescriptionBessie wants to navigate her spaceship through a dangerous asteroid field in the shap原创 2015-08-11 11:12:42 · 500 阅读 · 0 评论 -
二分图匹配模板
二分图匹配模板基于最大流问题,利用所有边的容量都是1,以及二分图的性质,我们可以向下面这样,把二分图最大匹配这样实现。int V; //顶点数vector<int> G[MAXV]; //图的邻接表表示int match[MAXV]; //匹配的顶点bool used[MAXV]; //DFS中用到的访问标记//向图中增加一条连接u和v的边void原创 2015-08-11 10:36:10 · 564 阅读 · 0 评论 -
[图论]最大流介绍 Ford-Fulkerson算法 邻接表实现
这次来讲最大流的相关问题,介绍图上的网络流。网络流具有各种各样的性质和应用,还有很多的变体,程序设计竞赛当中也经常会出现相关题目。先来看一个例子:最大传输量 网络中有两台计算机s和ts和t,现在想从ss传输到tt,该网络中一共有NN台计算机,其中一些计算机之间连有一条单项的通信电缆,每条通信电缆都有对应的11秒钟所能传输的最大数据量。当其他计算机之间没有数据传输时,在1s1s内最多可以传输多少数据原创 2015-08-10 19:09:36 · 2044 阅读 · 2 评论 -
[网络流] 二分图匹配
二分图匹配,本质上是最大流问题的一种特殊情况。指派问题 有N台计算机和K个任务,我们可以给每台计算机分配一个任务,每台计算机能够处理的任务种类各不相同,请求出最多能够处理的任务个数。这个问题可以像下面这样转化为图论模型来分析。我们可以像下面这样来定义无向二分图 G=(U⋃V,E)G = (U \bigcup V,E)。 U是代表计算机的顶点集合,V是代表任务的顶点集合,对于任意u∈U和v∈V原创 2015-08-10 19:46:57 · 4195 阅读 · 0 评论 -
[最小生成树]Kruskal算法
接下来看一下Kruskal算法: Kruskal需要用到并查集,所以编码的复杂度相比prim算法要高一些。该算法按照边的权值顺序从小到大查看一遍,如果不产生圈,就把当前这条边加入到生成树中。kruskal返回的是整棵最小生成树的总权值。 举个例子: 接下来我们介绍如何判断是否产生圈。假设现在要把连接顶点u和顶点v的边e加入生成树中。如果加入之前,u和v不在同一个连通分量里,那么加入e也不会产生原创 2015-08-10 15:56:40 · 567 阅读 · 0 评论 -
[最短路]使用优先队列优化的Dijkstra算法
用邻接矩阵的Dijkstra算法的代码:int cost[RANGE][RANGE]; int d[RANGE]; bool used[RANGE]; int n,m; //顶点数,边数 void Dijkstra( int s ) { int i,v,u; for( i=1; i<=n; ++i ) {原创 2015-08-10 14:42:25 · 23317 阅读 · 5 评论 -
[floyd]poj3660 Cow Contest
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uDescription N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, so原创 2015-07-13 09:54:23 · 492 阅读 · 0 评论 -
八数码问题
编号为1-8的8个正方形滑块被摆成三行三列(有一个格子留空),原创 2014-04-21 15:41:42 · 1573 阅读 · 1 评论 -
关于prim算法的讨论:例:HDOJ1233——还是畅通工程
首先我们介绍Prim算法。Prim算法与Dijkstra算法十分相似,都是从某个定点出发,不断添加边的算法。首先,我们假设有一棵只包含一个顶点v的树T。然后贪心地选取T和其他定点之间相连的最小权值的边,并把它加到T中,不断进行这个操作,就可以得到一棵生成树了。以第二个测试数据为例:还是畅通工程Time Limit: 4000/2000 MS (Java/原创 2015-05-12 16:11:43 · 610 阅读 · 0 评论 -
[图论]继续研究昨天的问题:最短路HDU2544 Floyd算法
求解所有两点间最短路的问题叫做任意两点之间的最短路问题,这次试着使用DP来求解任意两点之间的最短路问题。只使用顶点0-k和i,j的情况下,记录i到j的最短路长度为d[k+1][i][j]。k=-1时,认为只使用i和j。所以d[0][i][j]=cost[i][j]。接下来让我们把只使用定点0-k的问题归约到只使用0~k-1的问题上。只使用0-k时,我们分i到j的最短路正好经过顶点k一次和完全不原创 2015-05-14 13:07:35 · 655 阅读 · 0 评论 -
[图的搜索]二分图判定
二分图判定:给定一个具有n个顶点,v条边的图。要给图上每个顶点染色,并且要使相邻的顶点颜色不同。问是否能最多用2种颜色进行染色?题目保证没有重边和自环。限制条件:1≤n≤10001≤v≤100000样例输入:4 40 10 32 12 33 30 10 21 2样例输出:YesNo把相邻顶点染成不同颜色的问题叫做图着色原创 2015-08-10 12:43:31 · 657 阅读 · 0 评论 -
[单源最短路]Bellman-Ford算法
单源最短路问题是固定一个起点,求它到其他所有点的最短路的问题。终点也固定的问题叫做两点之间最短路问题。但是因为解决单源最短路问题的复杂度也是一样的,因此通常当作单源最短路问题来求解。记从起点s出发到顶点i的最短距离为d[i],则下述等式成立。 d[i] = min{d[j] + 从j到[i]的边的权值| e=(j,i)∈E} 如果给定的图是一个有向无环图,就可以按拓扑序给顶点编号,并利用这条递推原创 2015-08-10 14:00:36 · 596 阅读 · 0 评论 -
[图论]最短路问题 dijkstra算法
今天研究的是图论中的一类基础问题:最短路问题最短路问题是图论中最基础的问题,在程序设计竞赛试题中也经常出现。最短路是给定两个定点,在以这两个点为起点和终点的路径中,边的权值和最小的路径。如果把权值当作距离,考虑最短距离的话就很容易理解了。智力游戏中的求解最少步数问题也可以说是一种最短路问题。 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单原创 2015-05-13 13:16:45 · 2509 阅读 · 0 评论 -
[MST] hdu 1875 畅通工程再续
Z - 畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是原创 2015-07-13 12:16:36 · 466 阅读 · 0 评论 -
最小割问题
为了证明 http://blog.csdn.net/tlonline/article/details/47403027 中的算法所求得的确是是最大流,我们首先介绍“割”这一概念。所谓的一个图的割,指的是对于某个顶点集合S⊆VS\subseteq V ,从S出发指向S外部的那些边的集合,记为割 (S,V\S)。这些边的容量之和被称为割的容量。如果有 s∈Ss \in S,而t∈V/St \in V原创 2015-08-12 16:13:29 · 992 阅读 · 0 评论