题目大概就是说给一张二分图以及它的一个完备匹配,现在问X部的各个点可以与Y部那些些点匹配,使得X部其余点都能找到完备匹配。 枚举然后匹配,当然不行,会超时。 这题的解法是,在二分图基础上建一个有向图:原二分图中边(x,y)连<x,y>的弧,对于那个已知的匹配中的所有边(x,y)连<y,x>的弧,然后 ...
分类:
其他好文 时间:
2016-07-09 22:08:10
阅读次数:
193
2-SAT。 tarjan缩点。强连通分量的点要选一起选。 #include #include #include using namespace std; const int maxn = 20000 + 10; const int maxm = 200000 + 10; int n,m; int ... ...
分类:
其他好文 时间:
2016-07-07 21:07:27
阅读次数:
145
最关键通用部分:强连通分量一定是图的深搜树的一个子树。 一、 Kosaraju算法 算法思路 基本思路: 这个算法可以说是最容易理解,最通用的算法,其比较关键的部分是同时应用了原图G和反图GT。(步骤1)先用对原图G进行深搜形成森林(树),(步骤2)然后任选一棵树对其进行深搜(注意这次深搜节点A能往 ...
分类:
其他好文 时间:
2016-07-06 13:23:45
阅读次数:
162
Portal:http://acm.hdu.edu.cn/showproblem.php?pid=1863 依然最小生成树+并查集 因为不保证所有村庄在一个强连通分量里,所以用并查集要判断能否“畅通” 1 #include<iostream> 2 #include<algorithm> 3 #inc ...
分类:
其他好文 时间:
2016-07-06 00:11:04
阅读次数:
176
Portal: http://acm.hdu.edu.cn/showproblem.php?pid=1233 最小生成树模板题 kruskal+并查集 因为给出了所有村庄间的距离,所以保证所有村庄在一个强连通分量里,所以直接kruskal 1 #include<iostream> 2 #includ ...
分类:
其他好文 时间:
2016-07-06 00:07:09
阅读次数:
151
Portal:http://acm.hdu.edu.cn/showproblem.php?pid=1879 。。。畅通工程没完没了了 kruskal+并查集 又给出了所有村庄间的距离,保证所有村庄在一个强连通分量里,所以直接kruskal 建好的路建造代价为0 1 #include<iostream ...
分类:
其他好文 时间:
2016-07-06 00:06:20
阅读次数:
196
最关键通用部分:强连通分量一定是图的深搜树的一个子树。 一、 Kosaraju算法 算法思路 基本思路: 这个算法可以说是最容易理解,最通用的算法,其比较关键的部分是同时应用了原图G和反图GT。(步骤1)先用对原图G进行深搜形成森林(树),(步骤2)然后任选一棵树对其进行深搜(注意这次深搜节点A能往 ...
分类:
其他好文 时间:
2016-07-05 18:57:05
阅读次数:
200
http://blog.csdn.net/qq_24451605/article/details/47126143 ...
分类:
其他好文 时间:
2016-07-01 21:31:29
阅读次数:
227
看了好久才终于明白了这个算法。。复杂度是O(n+m)。 我觉得这个算法不是很好理解,但是看懂了以后还是觉得听巧妙的。 下面给出模板代码和三组简单数据帮助理解。 代码如下: 三组数据如下: ...
分类:
编程语言 时间:
2016-06-28 20:17:25
阅读次数:
211
题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。 先用tarjan求出每个强连通分量,再缩点 ...
分类:
其他好文 时间:
2016-06-24 22:12:53
阅读次数:
221