——图论——————
文章平均质量分 79
Lazines_by
好吧,我要工作了
展开
-
拓扑排序学习(Topological Sort)
拓扑排序的通过下面这个例题来体现吧:hdu1285 确定比赛名次题意: 给出两个数n,m,分别代表n个数,m个关系,接下来就是m对数x,y,代表x在y的前面; 要求输出 满足这m对关系式 并且编号小的在前面的序列。原理:对n个数记录他们的入度,如果入度为0的话就说明没有元素依赖于这个元素,说明这个数就可以加入到队列中了,不过这里还要求编号小的元素在前面,原创 2016-09-01 21:32:11 · 441 阅读 · 0 评论 -
图论之最短路入门
最短路有很多算法:现在我就对 Dijkstra 和 floyd 这两种算法讲一下;这两种方法输出最短路径的时候都是利用pre数组,倒查的方法。Dijkstra 是可以知道各个点到源点的最短距离的,是一个 dist [ ]数组记录的,时间复杂度为O(n^2);具体实现如下:将图中所有的顶点V分成两个集合Va,Vb,如果源点到u的最短路径已经确定,则点u属于集合原创 2016-09-04 10:38:36 · 486 阅读 · 0 评论 -
FZU 2141
题意:给出N个点M条边的图,现在要从中选出两个不相交的点集,使得以这两个点集构成的原图的子图构成一个二分图,并使得边数>=M/2。思路:一个一个点去染色,对于当前点,判断染哪个颜色使得受益最大就染哪个颜色,参考http://blog.csdn.net/qian99/article/details/22994069#include#include#include#inc原创 2017-06-24 11:26:45 · 256 阅读 · 0 评论 -
最大流学习hdu3549 && 4920二分图匹配
Dinic算法:#includeusing namespace std;const int maxn = 500 + 10;typedef long long ll;#define clr(x,y) memset(x,y,sizeof x)#define INF 0x3f3f3f3fstruct Edge{ Edge(int x,int y,int z):to(原创 2017-07-19 13:58:23 · 247 阅读 · 0 评论 -
hdu 3861(tarjan 缩点 + 二分图匹配 求最小路径覆盖
题意:题目大意:一个有向图,让你按规则划分区域,要求划分的区域数最少。规则如下:1、有边u到v以及有边v到u,则u,v必须划分到同一个区域内。2、一个区域内的两点至少要有一方能到达另一方。3、一个点只能划分到一个区域内。 解题思路:根据规则1可知必然要对强连通分量进行缩点,缩点后变成了一个弱连通图。根据规则2、3可知即是要求图的最小路径覆盖。定义:最小路原创 2017-07-23 17:17:20 · 300 阅读 · 0 评论 -
hdu 1530最大团模板
求一个图中的最大的点的集合,集合要求集合内的点相连为完全图。#include #include #include using namespace std;const int maxn = 60;int g[maxn][maxn], dp[maxn], stk[maxn][maxn], mx;int dfs(int n, int ns, int dep){原创 2017-09-02 21:24:49 · 261 阅读 · 0 评论 -
贪心法求树的最小支配集,最小点覆盖,最大独立集
转载自:http://www.cnblogs.com/Ash-ly/p/5775934.html定义:最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得 V 中剩余的点都与取出来的点有边相连.也就是说,设 V' 是图的一个支配集,则对于图中的任意一个顶点 u ,要么属于集合 V', 要么与 V' 中的顶点相邻. 在 V' 中转载 2018-02-02 09:27:26 · 228 阅读 · 0 评论 -
树形DP求树的最小支配集,最小点覆盖,最大独立集
转载自:https://www.cnblogs.com/Ash-ly/p/5783877.html一:最小支配集考虑最小支配集,每个点有两种状态,即属于支配集合或者不属于支配集合,其中不属于支配集合时此点还需要被覆盖,被覆盖也有两种状态,即被子节点覆盖或者被父节点覆盖.总结起来就是三种状态,现对这三种状态定义如下:1):dp[i][0],表示点 i 属于支配集合转载 2018-02-02 09:47:24 · 256 阅读 · 0 评论