ACM-图论
文章平均质量分 74
wsniyufang
这个作者很懒,什么都没留下…
展开
-
HDU 4313 Matrix 类似 克鲁斯卡尔算法
#include #include #include #include #include #include #include #include #include#includeusing namespace std;set Set;struct Edge{ int x,y,val; bool operator<(const Edge & a)const原创 2012-08-04 21:37:12 · 2437 阅读 · 0 评论 -
二分图带权匹配问题
出处:http://www.byvoid.com/blog/match-km/#respond[二分图带权匹配与最佳匹配]什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。而二分图的最佳匹配则一定为完备匹配,在此基础上转载 2011-09-08 11:39:00 · 9234 阅读 · 1 评论 -
最小费用流模版
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 1637 & zoj 1992 混合图的欧拉回路
/*参考:http://zhyu.me/acm/zoj-1992-and-poj-1637.html题意:给出一个混合图(有的边有向,有的边无向),问此图是否存在欧拉回路。先说说欧拉回路吧,起点和终点相同,经过图G的每条边一次,且只经过一次的路径称为欧拉回路。按照图的不原创 2011-09-06 22:20:56 · 902 阅读 · 1 评论 -
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 评论 -
poj 1904 King's Quest 二分图中强联通分量的运用
/*题意:给你一个二分图,给定初始的完全匹配,判断更改某个X集合的匹配对象,时候还存在完全匹配题解:强联通分量,对于非初始匹配的边,建由X到Y的单向边,反正建由Y到X的单向边,由增广路原理可知道,非初始匹配边只要在同一个强联通分量里面,必然可以重构一个完全匹配*/#inc原创 2011-09-05 18:57:35 · 1144 阅读 · 0 评论 -
HDU 2121 Ice_cream’s world II 无固定点的最小树形图 朱刘算法
/*本题为不是固定根的最小树形图,我们可以虚拟出一根来,然后在把这个根跟每个点相连,相连的点可以设为无穷大,或者设为所有边和大一点,比如为r,然后就可以利用最小树形图进行计算了,计算出的结果减去r,如果比r还大就可以认为通过这个虚拟节点我们连过原图中两个点,即原图是不连通的,我原创 2011-09-04 19:02:19 · 3591 阅读 · 1 评论 -
最小树形图模版——朱刘算法
/*最小树形图图模版-朱刘算法模版说明:点标号必须0-(N-1) 必须去除到自身的点(到自身的边的边权赋无限大)*/#define M 109#define type intconst type inf=(1)<<30;struct Node{ int u原创 2011-09-04 17:02:54 · 5298 阅读 · 1 评论 -
HDU 4009 Transfer water 最小树形图 朱刘算法
/*很裸的朱刘算法,后悔昨天比赛前没看过朱刘算法,掩面大哭~~抽象一个超级起点,连改点到每个点的单向边,边权为点自身的建井的代价如果可以从i连水管到v,建一条i到v的单项边,边权为修水管的代价然后就是用朱刘算法求最小树形图了。朱刘算法详见:http://blog.csdn原创 2011-09-04 17:46:08 · 3046 阅读 · 0 评论 -
poj 3164 && tju 2248 最小树形图 朱刘算法
个人觉得这个博客把这个算法说的比较详细了,直接搬过来吧,我再阐述一遍的话没有人家说的好,还容易说错。========================== 分割线之下摘自Sasuke_SCUT的blog======================================原创 2011-09-04 16:55:44 · 7736 阅读 · 2 评论 -
hdu 3718 Similarity 二分图最大权匹配
/*二分图 最大权匹配问题,题目给定条件可以看出是完备匹配;利用最小费用最大流解决X集合连源点,边权为1,花费0Y集合连汇点,边权为1,花费0X连Y中任意元素,边权为1,花费为权值的相反数最后得到的最小费用就是最大权匹配*/#include #include原创 2011-09-08 12:04:17 · 1893 阅读 · 0 评论 -
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 评论 -
HDU 4337 King Arthur's Knights 稠密图构造汉密尔顿回路
#include#include#includeusing namespace std;const int N=200;int str[N],m[N][N],vis[N];int n,k;void rev(int s,int t){ while(s<t) { swap(str[s],str[t]); s++,t--; }}原创 2012-08-04 21:33:46 · 3274 阅读 · 0 评论 -
uestc 1717 Journey
#include #include #include #include #include #include #include #include using namespace std;const int N=100009;int n,m;int a,b,c,x,y;int len[N];int get[N];int vis[N],fa[N];vector > v[N]原创 2012-07-14 18:45:00 · 2114 阅读 · 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 · 1295 阅读 · 1 评论 -
HDU 3231Box Relations 拓扑排序
/*分别对x,y,z topsort就ok了注意有公共部分的时候的建边*/#include #include #include #include #include #include #include #include #includeusing namespace std;int n,r;char s[3];int x,y;int inx[1009*2];int原创 2011-10-20 11:16:15 · 1391 阅读 · 0 评论 -
集训队例赛——20110925 解题报告
//注释不是很多,读懂代码需要耐心。。。。。。读不懂可以在下面留言,我尽量回复。//希望大家都写赛后总结——写在自己人人或者空间博客内,没写出1002和1004的应该反思一下最近的状态了。。。/*1001开始用dfs递归,爆栈了后来模拟又因为 出迷宫的条件一直wa,细原创 2011-09-25 22:30:16 · 1273 阅读 · 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 · 668 阅读 · 0 评论 -
poj 3084 zoj2788 边联通度,最大流
/*边联通度的题;给定n个门,每个门连接两个房间,门面向其中的一个房间x,从这个房间x任意情况都可以到另外一个房间y,y只能在门开着的时候可以进入x,其中有些房间有入侵者,现在求解至少关几个门,可以保护某个房间的安全对于x,y之间面向x的门,连x到y的边,流量无穷,y到x的边原创 2011-09-08 22:22:42 · 1269 阅读 · 0 评论 -
poj 2112 二分答案+最大流
/*题意:k个挤奶机,每天可以给m头奶牛挤奶,让奶牛到达挤奶机的最大距离最小题解:很明朗的二分答案的题目,不解释先floyd求任意点之间的最短路,然后二分答案建图判断是否满足要求*/#include #include #include#include#inclu原创 2011-09-06 20:22:04 · 1523 阅读 · 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 3592 Instantaneous Transference tarjan缩点 最长路 ++tarjan模版 && spfa最长路模版
/*题意:给定一个矩阵,西南角为起点,每个单元都有一定价值的金矿(#表示岩石,不可达,*表示时空门,可以到达指定单元) 现在要求得最多可以获得多大利益题解:强联通分量,最长路;如果没有时空门,就是纯粹的有向无环图的最长路了,现在出现时空门了,只要求强联通分量进行原创 2011-09-06 00:50:33 · 1517 阅读 · 0 评论 -
HDU 4001 To Miss Our Children Time 最长路, DP
/*最长路实现*/#include #include #include #include#include#include#include#include#include#includeusing namespace std;const int N=10原创 2011-09-04 22:30:16 · 994 阅读 · 0 评论 -
Targan 算法[有向图强连通分量]
[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(stronglyconnected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected componen转载 2011-07-14 01:06:52 · 5079 阅读 · 1 评论 -
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 评论 -
HDU 3594 Cactus 图的强联通 tarjan
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3594题意:判断给定的有向图是否满足 1.强连通 2 每一条边属于且仅属于一个环tarjan算法的运用,用fa[]数组记录tarjand的搜索路径,当有一个点有横向边(指向它的祖先节点原创 2011-07-16 01:55:44 · 2639 阅读 · 1 评论 -
无向图求点割集算法
无向图求点割集算法 出处:http://blog.csdn.net/xinghongduo/article/details/6202646黑书上给出了关于求点割集的算法,但是比较模糊,我查阅了网络上的相关资料,理解了转载 2011-07-17 13:55:26 · 6665 阅读 · 1 评论 -
By Recognizing These Guys, We Find Social Networks Us第36届ACM国际大学生程序设计竞赛亚洲区预赛北京邀请赛bupt 197 tarjan+割边
/*题目地址:http://w.boj.me/onlinejudge/newoj/showProblem/show_problem.php?problem_id=197题意:给你一个人际关系网(双向的),让你求关键的关系,既如果这条关系断了,就会有某两个或以上的人失去联系了原创 2011-07-17 10:25:55 · 2320 阅读 · 0 评论 -
HDU 3599 War 求最短路+最大流
题目描述:在一个包含有N个点的无向图中求出从标号为1到N的边不相交的路径,点可以相交。解题报告:先求一遍最短路,能满足从1到n是最短路的边一点满足d[j]==d[i]+w[i][j](d[i]为点1到点i的最短路,w[i][j]为i到j的边权) 把这样的i,j在流网络中建一条原创 2011-07-15 23:02:13 · 901 阅读 · 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 · 1854 阅读 · 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 评论 -
ZOJ Monthly, July 2011 - G Tree of Three 3516
/*一遍DFS维护自身和子节点的前三个值*/#include#include#include#include#include#include#define MAXN 10009using namespace std;int n;struct Node{原创 2011-07-25 16:24:46 · 946 阅读 · 0 评论 -
FZU2011年全国大学生程序设计邀请赛(福州) 2038Another Postman Problem
树状DP;题目地址:http://acm.fzu.edu.cn/problem.php?pid=2038题目意思是求任意两点距离的总和;以每条边为对象,过这条边的总次数是 边左侧点的个数t 乘以 边右边点的个数n-t 所以这条边的累计和我 边权v*t*(n-t);因为原创 2011-07-09 23:19:25 · 2082 阅读 · 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 评论 -
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 3998 Sequence 最长上升子序列+最大流
/*很典型的题了,求最长上升子序列就不赘述了现在要得到不重复利用元素,可以构造几个这样长度的序列和同类型的求几条最短路类似,Maxlen[i]表示到i的最长序列长度Maxlen[i]=1的连源点Maxlen[i]=maxlen的连汇点(maxlen为最长序列的长度)原创 2011-09-02 18:03:20 · 1738 阅读 · 1 评论 -
HDU 3987 Harry Potter and the Forbidden Forest 最小割
/*很经典的最大流最小割的题目题意:求最小割,但因为最小割是不唯一的,题目要求得到最小割的条件下使得割边最少搜到usaco类似的一个题目才出的,构造很巧妙建边的时候每条边权 w=w*(E+1)+1;这样得到最大流maxflow/(E+1) 就是答案了道理很简单,如果原创 2011-08-31 22:08:49 · 885 阅读 · 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 评论