ACM-图论—匹配、网络流、最短路
文章平均质量分 78
wsniyufang
这个作者很懒,什么都没留下…
展开
-
POJ 3159 Candies 差分约束+spfa
/*不知道为什么写成队列就过不了,写成栈就过了……题意是:班长分糖果,每个学生心中都有一个标准,a b c 既 a学生认为b的糖果数应满足b-a<=c; 最后求差异最大,既分到最多糖果数-分到最少糖果数目 建图依据参见:http://blog.csdn.net/wsn原创 2011-07-22 16:27:47 · 675 阅读 · 0 评论 -
poj 2195 zoj 2404 hdu1533 Going Home
/*二分图 最小权匹配问题,题目给定条件可以看出是完备匹配;利用最小费用最大流解决X集合连源点,边权为1,花费0Y集合连汇点,边权为1,花费0X连Y中任意元素,边权为1,花费为两者曼哈顿距离最后得到的最小费用就是最小权匹配*/#include #include原创 2011-09-08 11:36:35 · 1317 阅读 · 1 评论 -
poj 1637 & zoj 1992 混合图的欧拉回路
/*参考:http://zhyu.me/acm/zoj-1992-and-poj-1637.html题意:给出一个混合图(有的边有向,有的边无向),问此图是否存在欧拉回路。先说说欧拉回路吧,起点和终点相同,经过图G的每条边一次,且只经过一次的路径称为欧拉回路。按照图的不原创 2011-09-06 22:20:56 · 902 阅读 · 1 评论 -
poj 1087 最大流
#include #include #include#include#include#include#include#include#include#includeusing namespace std;const int inf=1<<30;const原创 2011-09-06 21:47:26 · 634 阅读 · 0 评论 -
poj 2112 二分答案+最大流
/*题意:k个挤奶机,每天可以给m头奶牛挤奶,让奶牛到达挤奶机的最大距离最小题解:很明朗的二分答案的题目,不解释先floyd求任意点之间的最短路,然后二分答案建图判断是否满足要求*/#include #include #include#include#inclu原创 2011-09-06 20:22:04 · 1524 阅读 · 0 评论 -
最小费用流模版
const int M=20010,ME=500000;const int INF=0x3f3fffff;//******************************int Head[M],Next[ME],Num[ME],Flow[ME],Cap[ME],Cost[M原创 2011-09-07 15:43:23 · 632 阅读 · 0 评论 -
poj 1149 PIGS 最大流建图
/*顾客的先后顺序影响销售把顾客也看成源点和汇点以外的点1 源点和每个猪圈的第一个顾客连边,边权为此猪圈猪的数目存在多个猪圈的第一个顾客相同时,只需把边权相加即可2 对于顾客i,紧邻他前面有x打开过同一个房间,连一条边权无限的边(可以根据j的需求调度猪)3 每个顾客和原创 2011-09-06 19:02:21 · 1130 阅读 · 1 评论 -
poj1422 zoj1525 Air Raid 最小路径覆盖
/*题意:伞兵可以从任意点降落,每个点只可由一个伞兵到达,求遍历所有点至少需要多少伞兵题解:最小路径覆盖,拆点为二分图,求最大匹配x,n-x就是最小路径覆盖*/#include #include #include#include#include#include原创 2011-09-06 15:04:00 · 817 阅读 · 0 评论 -
HDU1695 欧拉函数+容斥原理+筛质因子
参考:http://hi.baidu.com/myzone2009/blog/item/9a3e7e1895046574dab4bdff.html题目大意:给你a, b, c, d, k; 找出这样的一队 x, y, 使得 gcd(x , y) = k, 并且x ∈[1,原创 2011-08-08 02:06:04 · 942 阅读 · 0 评论 -
二分图带权匹配问题
出处:http://www.byvoid.com/blog/match-km/#respond[二分图带权匹配与最佳匹配]什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。而二分图的最佳匹配则一定为完备匹配,在此基础上转载 2011-09-08 11:39:00 · 9234 阅读 · 1 评论 -
hdu 3718 Similarity 二分图最大权匹配
/*二分图 最大权匹配问题,题目给定条件可以看出是完备匹配;利用最小费用最大流解决X集合连源点,边权为1,花费0Y集合连汇点,边权为1,花费0X连Y中任意元素,边权为1,花费为权值的相反数最后得到的最小费用就是最大权匹配*/#include #include原创 2011-09-08 12:04:17 · 1893 阅读 · 0 评论 -
hdu 2435 There is a war 最小割-带加边条件
/*题意:给定一个有向网络,边权为拆掉边的代价,现在1要到n去,n试图阻止1到底,它至少花多大代价。 有一个条件,1可以在任意两点(不含1和n)加入一条边(此边不可被拆除),求n要花费的最小代价最大值题解:如果没有后面一个条件,答案就是最小割。易知加入两条边必须从源集到汇集(不然原最小割可以割断联系) 对于求一遍1到n的最大流网络状态network和最小割tmp,加入一原创 2011-11-02 15:34:28 · 1296 阅读 · 1 评论 -
HDU 3760 Ideal Path 最短路spfa+BFS 字典序最小的最短路
/*题意:给定无向图(有重边)每条边有一种颜色,边权为1,让你找到从1到n的最短路,并且经过的边的颜色组成的序列的字典序最小。解答:1 分别spfa求出所有点到1和n的最短路d[0][i],d[1][i](可能经过的边u-v满足d[0][u]+1+d[1][v]=d[0][n])。 2 bfs搜索最小的字典序序列,找出C[step]的最小颜色序号*/const int M原创 2011-10-27 10:46:11 · 1500 阅读 · 0 评论 -
集训队例赛——20110925 解题报告
//注释不是很多,读懂代码需要耐心。。。。。。读不懂可以在下面留言,我尽量回复。//希望大家都写赛后总结——写在自己人人或者空间博客内,没写出1002和1004的应该反思一下最近的状态了。。。/*1001开始用dfs递归,爆栈了后来模拟又因为 出迷宫的条件一直wa,细原创 2011-09-25 22:30:16 · 1273 阅读 · 0 评论 -
HDU 3251 Being a Hero 网络流 最小割
/*题意:给你f个可选城市,每个城市都有其价值w0,国王的城市在1,现在国王不想见到你(国王不想通过某种路径到达你选定的城市)——将你选的若干城市隔离出去,每条道路隔断都需要花费w1,现在问你可以达到的最大价值并要求输出你割断的路的编号题解:网络流模型题,将所有可选点连入超原创 2011-08-25 21:09:31 · 1633 阅读 · 0 评论 -
HDU 3655 Ensure No Absence
/*题目意思:找出这么一些点x,满足从1,2,3沿着各自的最短路走到x的路途上不可能相遇1 分别以1,2,3为起点求出1,2,3到各个点的最短路2 枚举边,到边起点u的最短路为dis1,dis2,sis3,到终点v的最短路为Dis1,Dis2,Dis3 如果Disx==原创 2011-08-22 19:39:31 · 872 阅读 · 0 评论 -
poj 3084 zoj2788 边联通度,最大流
/*边联通度的题;给定n个门,每个门连接两个房间,门面向其中的一个房间x,从这个房间x任意情况都可以到另外一个房间y,y只能在门开着的时候可以进入x,其中有些房间有入侵者,现在求解至少关几个门,可以保护某个房间的安全对于x,y之间面向x的门,连x到y的边,流量无穷,y到x的边原创 2011-09-08 22:22:42 · 1270 阅读 · 0 评论 -
poj 2396 Budget 带上下界的网络流模型
#include#include#include#include#include#include#includeusing namespace std;const int MAXN=255;const int INF=1000000000;int cap[原创 2011-09-08 14:32:19 · 728 阅读 · 0 评论 -
poj 2516 最小费用最大流
/*最佳匹配的题,m个仓库供应k种商品给n个商家,m*n条运输代价互异,求满足商家需求下的最小运输费用显然,如果某种商品的供货量比需求大,肯定是无法达到要求的,所以开始要判别是否可以得到最佳匹配这个题非常有启发意义,刚开始把k种商品一并考虑,tle了,想来也是,这样X集合原创 2011-09-08 20:08:35 · 669 阅读 · 0 评论 -
HDU 3917 Road constructions 2011 Multi-University Training Contest 8 - Host by HUST 最大权闭包
/*最大权闭包的题目,关键在怎么建图用最大流来求每个工程队的税收为正权,连源点每个工程队的施工总和为负权 C[i],连汇点,值为-C[i];有联系的工程队之间连有向边,边权为inf答案为所以税收总和-最大流*/#include #include #include原创 2011-08-06 16:49:04 · 1205 阅读 · 0 评论 -
HDU 3996 Gold Mine
/*最大权闭包经典对于一个点连汇点,边权为花费值,连源点,边权为赚的的值两个点有约束关系a->b,连单项边b->a;赚的值的和减去最大流就是解*/#include #include #include #include#include#include#inc原创 2011-09-02 17:57:17 · 1157 阅读 · 0 评论 -
HDU 3879 Base Station 最大权闭包 2011 Multi-University Training Contest 5 - Host by BNU
/*建立点到汇点的边,边权的点值抽象边为点(边点),建立源点到边点的边,边权为原的边权建立边点到其原先连的点的两条边,边权无穷,求最大流。答案为所有原边权和减去最大流*/#include #include #include #include #include原创 2011-07-27 22:40:05 · 1151 阅读 · 0 评论 -
POJ 3308最大流最小割
思路是百度大牛得到的,代码是自己写的(当然用到了模版)题意:火星人要和地球人PK,地球人间谍搞到了一份情报:火星人要搞伞兵,登陆在地球一个row*col的地图上,而且知道伞兵的数量和每个伞兵要降落的格子。为了消灭敌人,可以在某一行或者某一列安置激光枪。每个激光枪可以瞬间消灭这一行原创 2011-07-11 15:14:22 · 1218 阅读 · 0 评论 -
POJ 2396 Budget 带下界的最大流 Dinic
参考:http://hi.baidu.com/%CD%F4%BD%ADwangjiang/blog/item/aa3bc8ec3d549edbb31cb1a3.html http://apps.hi.baidu.com/share/detail/31832477题意:现在有一个n原创 2011-07-12 20:44:08 · 1746 阅读 · 0 评论 -
HDU 3829 Cat VS Dog 2011 Multi-University Training Contest 1 - Host by HNU
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3829题意:有一群人,他们要么喜欢狗讨厌猫,要么喜欢猫讨厌狗,在自己喜欢的动物C留下且自己讨厌的动物D他们会happy,求管理员最多让多少人开心题解:最大独立点集,拆点转换为最大流问题原创 2011-07-13 21:53:01 · 1067 阅读 · 0 评论 -
HDU 3873 Invade the Mars 2011 Multi-University Training Contest 4 - Host by SDU
/*题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3873最短路的巧妙运用,本题较最短路问题多出了保护城市的条件,即一个城市x受若干城市保护,没有攻占所有保护x的“卫星城”就不可以攻占xdij过程中要维护其保护城市,用les[原创 2011-07-26 10:59:57 · 1855 阅读 · 3 评论 -
HDU 3870 Catch the Theves 2011 Multi-University Training Contest 4 - Host by SDU
/*第一道在平面图中 把最大流问题转换为最短路问题的题目*/#include#include#include#include#include#include#include#includeusing namespace std;const int maxn原创 2011-07-23 21:52:11 · 1183 阅读 · 2 评论 -
POJ 1364 差分约束
/*参考:http://hi.baidu.com/yacbi/blog/item/e79fa42e56a9ff3e1e3089ee.html所谓查分约束系统其实很简单,就是全都是两个未知数的差小于等于某个常数(大于等于也可以,因为左右乘以-1就可以化成小于等于)的一系列方程原创 2011-07-22 02:17:22 · 1765 阅读 · 1 评论 -
POJ 1201 Intervals 差分约束+spfa
/*题意是给定区间[ai,bi],要就在区间上至少有ci个点,如果用S[i+1]表示区间[0,i]的点数,则题目要求就可以转化为S[bi+1]-S[ai]>=ci;联系到求单源最短路时的松弛操作:若dis[v]>dis[u]+w[u][v],则dis[v]=dis[u]+w原创 2011-07-22 15:38:38 · 765 阅读 · 0 评论 -
poj 3281 Dinic模版题
【题目大意】 有F 种食物和D 种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一 种食物和一种饮料。现在有 N 头牛,每头牛都有自己喜欢的食物种类列表和饮 料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料。(1 100, 1 【建模方法】 此题的建模方法转载 2011-07-11 13:55:15 · 947 阅读 · 0 评论 -
HDU HDU 3861 The King’s Problem 2011 Multi-University Training Contest 3 - Host by BIT
/*首先用tarjan算法实现缩点,然后拆点进行二分匹配(无环图求最大点独立点集)*/#include#include#include#include#include#include#include#includeusing namespace std;原创 2011-07-20 20:29:50 · 883 阅读 · 0 评论 -
HDU 3998 Sequence 最长上升子序列+最大流
/*很典型的题了,求最长上升子序列就不赘述了现在要得到不重复利用元素,可以构造几个这样长度的序列和同类型的求几条最短路类似,Maxlen[i]表示到i的最长序列长度Maxlen[i]=1的连源点Maxlen[i]=maxlen的连汇点(maxlen为最长序列的长度)原创 2011-09-02 18:03:20 · 1739 阅读 · 1 评论 -
hdu 3622 2-sat经典问题
/*典型的2-sat题目二分半径两点x,y有冲突,就把x连一条到yy(即y的对立点),y连一条到xx然后求强联通分量,如果存在x到xx属于一个联通分量,则不符合条件*/#include #include #include #include #inclu原创 2011-09-01 23:25:50 · 1220 阅读 · 0 评论 -
hdu 1824 && hdU 3062 2-SAT经典
/*HDU 3062*/#include #include #include #include #include #include #include #include using namespace std; co原创 2011-09-02 01:05:44 · 1777 阅读 · 1 评论 -
HDU 3987 Harry Potter and the Forbidden Forest 最小割
/*很经典的最大流最小割的题目题意:求最小割,但因为最小割是不唯一的,题目要求得到最小割的条件下使得割边最少搜到usaco类似的一个题目才出的,构造很巧妙建边的时候每条边权 w=w*(E+1)+1;这样得到最大流maxflow/(E+1) 就是答案了道理很简单,如果原创 2011-08-31 22:08:49 · 886 阅读 · 0 评论 -
HDU 3986 Harry Potter and the Final Battle
/*题意:在一张图上删去一条边,使得从1到n的最短路最长刚开始枚举要删去的边x,求最短路,复杂度是m*n*log(n);果断tle了后来想想只要在不删边的情况下求得最短路,记录最短路经过的边,然后枚举这些边中的一条为删去的边求最短路,使得这个值最多即可很显然,删去的边不是原创 2011-08-31 22:17:37 · 1144 阅读 · 0 评论 -
堆优化的Dijkstra
struct Dijkstra { typedef long long int64; static const int64 INF = (int64) (1) << 60; struct Edge { Edge *next; int to; int64 dis;原创 2011-08-02 19:43:10 · 1835 阅读 · 0 评论 -
Dinic最大流模版
//************************************************** //为dinic求最大流模版 struct edge { int v, next; LL val; } net[ 500010原创 2011-08-02 22:16:30 · 816 阅读 · 0 评论 -
HDU3832 Earth Hour 2011 Multi-University Training Contest 1 - Host by HNU
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3832题意:有n块区域,求保证前三个区域联通的情况下最多可以删掉几个区域;可以想象最优连通方案不是一条链就是一个三叉。因为是无权的,最少点数实际上就是最短路。当分叉点在特定点上的时候,原创 2011-07-13 21:43:42 · 937 阅读 · 0 评论 -
CodeForces Round #112 Div2 165 D. Beard Graph
/*题目给定一棵树,这棵树很特殊,只有根节点的度可能超过2有三种操作 1.把编号为x的边染成黑色2.把编号为x的边染成白色(此时这条边不可以走)3.询问x,y之间的距离(不能走到输出-1)*/#include#include#include#include#include#include#include#includeusing namespace std;con原创 2012-03-26 14:40:36 · 2295 阅读 · 0 评论