图论
liujc_
这个作者很懒,什么都没留下…
展开
-
树的直径 poj1985 poj 1849 hdu 2196
资料:http://www.cnblogs.com/celia01/archive/2012/07/30/2615842.html http://www.cnblogs.com/wuyiqi/archive/2012/04/08/2437424.html 树的直径:树中最长路径的长度。 方法:假设最长路径为s-t ,对于任意一点u,找一条以u为起点的最长路径,这条路径的终点必为s、t 中的一点原创 2015-11-25 20:50:36 · 502 阅读 · 0 评论 -
hdu 4612 求边连通分量+求树的直径
http://acm.hdu.edu.cn/showproblem.php?pid=4612 题意: 加一条边,使得桥的数量最少? 思路: 求边连通分量,缩点,然后变成一个树,树边都是桥,求树的直径。 树的直径就是最多减少的桥。 桥的数量最少就是原图中的桥的数量 - 树的直径。要注意重边。#pragma comment(linker, "/STACK:1024000000,10240原创 2016-05-07 18:35:49 · 838 阅读 · 0 评论 -
poj 3177 3352 边双连通分量
题目链接:http://poj.org/problem?id=3177 题意:至少加多少边才能构成边双连通图。 思路:求边双连通分量,对于每一个边双连通分量都看做一个点,也就是进行缩点,然后就构造出一个树,然后在这个树上加多少个树边,能够变成一个双连通图。 加的数量就是( 这棵树总度数为1的结点数 + 1 )/ 2#include <iostream> #include <cstdio> #in原创 2016-05-06 22:00:26 · 633 阅读 · 0 评论 -
poj1144 求割点的个数
题目链接:http://poj.org/problem?id=1144 求割点,模板题#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <stack> using namespace std; const int M = 1009; int原创 2016-05-06 21:46:05 · 316 阅读 · 0 评论 -
hdu3081 二分+并查集+最大流
http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意: 有n个女孩,n个男孩,对于每个女孩有几个没有争吵过的男孩,每个女孩有几个朋友(都是女孩),对于没有争吵过的男孩可以建立关系。这样就可以进行一次游戏,那么下一次可以选择一个之前没有选择过的人建立关系。那么求最多能进行多少次关系。思路: 对于朋友关系,很容易想到用并查集维护,那么在一个集合中所连的原创 2016-05-03 21:41:05 · 391 阅读 · 0 评论 -
uva10480 最大流最小割定理
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1421 题意: 求最小割的边。方法: 跑最大流,最后跑完后,S-T割,将与源点相连的点分到一个集合,与汇点相连的点分到另一个集合。如果边的两个点分别在不同的集合中,那么这个就是最小割上的边。。#incl原创 2016-05-03 21:20:39 · 359 阅读 · 0 评论 -
poj 2724 最大独立集
http://poj.org/problem?id=2724 题意: 给了n,m。表示n个开关,m个操作。如果当前开关为’*’表示同时匹配0,1。只能将这m个操作所洗过的再洗一次,试问最少进行多少次操作。 思路: 要进行最少的操作肯定是优先进行’*’操作,所以就将这个转换成普通的0,1。所有的操作中,如果有只相差一位的就连一条边,最后将问题转换成最多有多少个两两不相连的点,也就是最大的独立集原创 2016-04-18 15:35:23 · 328 阅读 · 0 评论 -
poj 3692 最大团(二分图匹配,最大独立集)
http://poj.org/problem?id=3692 题意: 每个男生之间都相互认识,每个女生之间都相互认识,每个男生可能认识部分女生。求一个集合里面的人相互都认识,这个集合的人数最多是多少。 思路: 相互都认识,如果把认识关系当做边的话,那么要求的就是最大完全子图(也叫最大团)。 可以发现男生和女生自身都是一个完全子图,所以按照认识关系建图的话,违背了二分图的原则。思考用不认识的原创 2016-04-18 15:11:56 · 1020 阅读 · 0 评论 -
最大独立集 poj1466
http://poj.org/problem?id=1466 题意: 有一种关系存在于一个男孩和女孩之间,找出一个集合中任意的男孩和女孩不存在这样的关系。问这个集合的最大人数。 将关系视为一条边,要求一个集合不存在这关系,就表明了集合中的顶点两两不能相连。就是求最大的独立集了。 最大独立集:在G中两两不相连的顶点集合S 最大独立集的点数 + 最小顶点覆盖的点数 = V的个数 二分图中:最原创 2016-04-18 14:33:03 · 403 阅读 · 0 评论 -
floyd +二分答案+最大流 poj2112
http://poj.org/problem?id=2112 题意: 有n个机器,有c个奶牛,每个机器能够最多接受m个奶牛。给出一个距离(n+c)*(n+c) 的距离矩阵,问要让每一个奶牛都能走到一个机器,求这种情况下走的最远的奶牛的最小的距离。 思路: 很容易看出这是一个最大值最小化的问题。 先进行floyd,跑出最短路。进行二分答案,对于这个走的最远的距离,如果奶牛到某一个机器的距离小原创 2016-04-18 14:13:57 · 412 阅读 · 0 评论 -
全局最小割模板 poj2914
http://poj.org/problem?id=2914 参考资料:http://www.hankcs.com/program/algorithm/poj-2914-minimum-cut.html 就是单纯的全局最小割#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include原创 2016-04-18 13:55:46 · 448 阅读 · 0 评论 -
aoj 2251 二分图匹配
题目链接: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2251题目大意: 问最少安排几个圣诞老人送礼物。 给了一些点,之间存在一些路径。给出了一些点必须在一定的时刻有圣诞老人到达,圣诞老人可以从任何点出发。求最少的圣诞老人个数。思路: 建图十分炫酷,本人太愚钝着实没看出来。。最坏情况下每一个点都需要一个圣诞老人,考虑怎么原创 2016-04-30 17:29:18 · 473 阅读 · 0 评论 -
有向图的强连通分量的分解 总结 poj2186例题举例
常用两种算法: tarjan和korasaju算法。 学习资料: https://www.byvoid.com/blog/scc-tarjan/ https://zh.wikipedia.org/wiki/Tarjan%E7%AE%97%E6%B3%95 挑战P320 定义: 如果一个有向图S,在图中任取两个点u,v,都存在一条u到v的路径,那么称这个图是强连通的。而有向图的一个强连通分原创 2016-03-26 20:58:34 · 4857 阅读 · 0 评论 -
最大流求最大权闭合图
参考论文: 算法合集之《最小割模型在信息学竞赛中的应用》 有两道题都跟这个论文有关。poj2987链接:http://poj.org/problem?id=2987 题意:裁员,如果要开除这个员工那么这个员工的下属也要被开除,给出每个员工的贡献值和从属关系,求最小的裁员数和最大的贡献值。 解法: 求最大权闭合图,闭合图就是图中每个点的后续都在这个图中,求出点的权值之和最大的这样的图。 论文原创 2016-04-12 11:11:42 · 486 阅读 · 0 评论 -
2-SAT 挑战4.3习题
poj3678: 题目链接: http://poj.org/problem?id=3678 题意: 给定一系列的布尔表达式,问能否找到一个解是这些都成立? 比较裸,就是对应的建立限制条件。如果i 为真,j也必须为真就建立(i,j)一条边。 要注意的就是,XOR ,比如x XOR y = 1 , 那么 等价于x=>y’ AND x’=>y AND y=>x’ AND y’=>x x XO原创 2016-03-30 17:03:54 · 312 阅读 · 0 评论 -
2-sat 问题 总结 例题poj 3683
学习资料: http://www.cnblogs.com/kuangbin/archive/2012/10/05/2712429.html http://blog.csdn.net/pi9nc/article/details/11849843 2-sat问题描述: 给定n对二元组,给定一定的限定条件,并且对于每一个二元组来说能且仅能选择一个元素,问如何选择才能满足所有的限定条件。如果这个限定原创 2016-03-29 17:03:17 · 906 阅读 · 0 评论 -
hdu2460 poj3694 求桥 + 求lca
http://poj.org/problem?id=3694 题意: 给定一个图,对这个图进行加边,求出每加一条边后,图中桥的个数。 思路: 首先肯定是要先求出原图中桥的个数,并且把桥标记起来。思考加一条边以后桥的数量会减少多少,联想到之前的那道题,就是加一条边,能够使桥的数量最少是多少。之前那个做法就是缩点后树的直径,这个就是可以减少的最多的桥的数量。因为如果这是一条链,将两个端点连起来,原创 2016-05-09 13:35:38 · 1170 阅读 · 0 评论