http://acm.hdu.edu.cn/showproblem.php?pid=2970P个小朋友喜欢猫讨厌狗,喜欢狗讨厌猫,移除一定数量的猫狗,使开心的小朋友数量最多二分图最大独立集=顶点数-二分图最大匹配对喜好冲突的小朋友连边,因为对小朋友建图拆了点,求出的最大匹配要除以2和hdu 1068...
分类:
其他好文 时间:
2014-06-28 13:47:21
阅读次数:
190
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1486题意:给出一个有向图,边有权值。找到一个环,使得环上边的权值之和除以环上边的个数最小。思路:二分答案x,每条边权值减去x,之后 找负环。从每个顶点开始DFS,记录到达某个顶点的距离,设...
分类:
其他好文 时间:
2014-06-23 07:12:27
阅读次数:
236
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1997题意:给出一个无向图。已知该图存在一个包含n个顶点的哈密顿回路。判定该图是不是平面图。思路:圈将面分成内外两部分,则两条边同时在内部相交则同时在外部也是相交的。因此,必然是一个在内部一...
分类:
其他好文 时间:
2014-06-23 06:48:15
阅读次数:
170
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2182题意:给出一个无向图,问最少删掉多少个顶点之后图变得不连通?思路:将原图每个点拆点(i,i+n),连边,对原图的边(u,v),连边,。然后对于每对顶点(i,j)...
分类:
Web程序 时间:
2014-06-23 00:51:26
阅读次数:
291
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2007题意:给出一个n*n的格子,那么顶点显然有(n+1)*(n+1)个。每两个相邻顶点之间有两条边,这两条边是有向的,边上有权值。。左上角为源点,右下角为汇点,求s到t的最小割。思路:很明...
分类:
其他好文 时间:
2014-06-23 00:32:27
阅读次数:
281
在一个软件工程项目中,有些任务需要在另外一个任务完成之后才能完成,这种任务在软件工程中是非常常见的。下图就展示了一个软件项目的依赖情况。
这张图非常明显,就是一张有向图。那么,现在问题就来了,如何输出任务的完成顺序呢?
这个问题有一个前提条件,就是有向图中不能出现回路。
算法的基本思想就是在每次dfs返回时将顶点加入到返回结...
分类:
其他好文 时间:
2014-06-22 20:03:38
阅读次数:
221
最小生成树是图论中的一个概念。首先介绍一下什么是生成树。生成树就是将一个图中所有的顶点全部连接在一起,并且保证图中没有出现回路。
下图不是生成树,因为没有连接所有的顶点。
下图不是生成树,因为图中有回路。
像下图这样的才是生成树。
生成树的概念介绍完了。那么最...
分类:
其他好文 时间:
2014-06-22 18:33:47
阅读次数:
202
首先介绍什么是强连接。顶点之间的强连接就是如果v能到达w,那么w也能到达v。顶点之间的强连接就表示顶点之间可以双向到达,也就是说两个顶点在一个回路上。
介绍了强连接,那什么是强连接部件呢?强连接部件就是能够相互到达的所有顶点的集合。一个图中可能会有多个强连接。
强连接在离散数学中属于等价关系,也就是说它具有反射性,相反性,传递性。
应用
...
分类:
其他好文 时间:
2014-06-22 15:22:49
阅读次数:
172
为了简化问题,我们需要作出一些假设。假设图中每条边的权重都是不一样的,假设整个图是连通的。这样假设的目的就是让最小生成树的计算结果是唯一的。
图的切割
介绍算法之前,需要先了解图的切割。图的切割就是将顶点分割成两部分,切到的边称之为交叉边。下图红色的先就是交叉边。
在最小生成树中,无论如何切割,最小生成树总是从交叉边中选择最小的...
分类:
其他好文 时间:
2014-06-21 23:51:30
阅读次数:
316
Prim算法用于计算最小生成树。Prim算法分为两种,一种是懒汉式,一种是饿汉式。
懒汉式Prim
懒汉式Prim算法步骤如下:
首先将顶点0加入到MST中
从MST与未访问顶点之间边中选出最短的边,在满足MST的前提下,将这条边加入到MST
代码
import java.util.LinkedList;
import jav...
分类:
其他好文 时间:
2014-06-21 20:37:01
阅读次数:
289