ACM[网络流 二分图]
sevenster
= = 水男
展开
-
POJ 2135 最小费用流模板题
题目大意:从起点1到终点N的一个圈,最小路径花费。完毕。构图跑两次spfa,完毕。#include#include#include#include#include#include#include#define NN 1111#define MN 11111using namespace std;struct Edge{ int u,v,c,f,cost,next;原创 2012-09-30 16:28:56 · 1243 阅读 · 0 评论 -
POJ 3204 求使得最大流增大的边
这题还是有点技巧的。我们求出了最大流,怎样知道哪些边可以使得流量增大呢?若存在e(U,V):S->U路径上的点都有剩余容量,V->T路径上的点都有剩余容量。如果有某条边为上述情况,那么对边e进行扩容,最大流增大。应该十分好理解吧。通过源点进行DFS寻找S集合中所有的点进行标号,很容易。那么...V到T可达这怎么弄呢?同样我们通过T来DFS只要存在点V到T有剩余容量,原创 2012-04-20 15:46:00 · 821 阅读 · 0 评论 -
POJ 2125 最小割最小点权覆盖
做这题还是看了Amber大神的论文...还是在这里冗余一下吧:点覆盖集:无向图G的一个点集,使得该图中所以边都至少有一个端点在该集合内。形式化的定时意思点覆盖集为V'∈V,满足对于所有的(u,v)∈E,都有u属于V'或v属于V'成立,即至少一个成立。形象的说是若干点“覆盖”住了与他们邻接的边。这些边恰好组成了原边集。最小点覆盖集: 在无向图G中,点数最小的覆盖集。最小点权覆盖集原创 2012-04-18 23:16:31 · 1519 阅读 · 0 评论 -
POJ 1966 最大流最小割...
最近写的代码都挺长的啊...下面说一下最小割吧。以下内容引自:这里首先介绍一个概念:点连通度:一个具有N个顶点的图G,去除K个顶点后,图成为非连通图,去除任意K-1个顶点后,图仍为连通图。责成图G为K连通图。独立轨:A,B是图G中两个顶点,从A至B的无公共内顶点的路径叫做独立轨,其最大条数记为p(A,B);如上图中,将A=1,B=5;那么该图的最大独立轨数量为3原创 2012-04-17 19:33:34 · 839 阅读 · 0 评论 -
POJ 3308 最小割最优点权覆盖
题目大意:火星人入侵地球,他们降落的区域为一个n*m的矩形兵工厂,在这个区域行顶点和列顶点处有激光束,激光束一次能消灭一排或一列的敌人。为了消灭所有入侵的火星人,求最小的花费。每安装一个激光束都有一个权值,花费所有激光束权值的积。思路:如果不考虑到点权值,如POJ3041,每个点权值都为1,也就是求最大二分图匹配了。用匈牙利或者网络流都很好做的。so... 但是这题求的是最优点原创 2012-04-18 13:13:50 · 812 阅读 · 0 评论 -
POJ 2391 floyd+二分+最大流
思路构图还是十分的好想的... 比较的有经验了。对这题,没啥难度了。题目大意:FJ有很多田地,一些田地有雨棚,雨棚有容纳牛的容量,现在给你田中的牛和田里的雨棚的容纳量,还有田间路径走完花费的时间。要求出使得所有牛都躲进雨棚里的最小时间。构图还是很简单的:将牛棚拆点为in和out点。源点到in容量为牛棚中牛的数量,out到汇点为牛棚的容量。in--out为无穷大。二分枚举原创 2012-04-16 14:37:57 · 760 阅读 · 0 评论 -
POJ 2289 二分最大流
这中类型的题做过两道了,所以一见题就知道思路了。不过这题的输入比较恶心,还好能应付。本来不想做这题的,但是看到数据也还大1500个点,想用链表试试,先敲了个二维数组,等待TLE的过程中1Y了....何其蛋疼!1500ms 不算快...#include#include#include#include#include#define CC(a) memset(a,0,sizeof(原创 2012-04-14 16:49:50 · 835 阅读 · 0 评论 -
ZOJ 2760 最短路径条数问题
虽然以前做过最短路径的条数问题,但这个问题有点奇葩,在最短路径数量中,路径不能重复使用= =....如果可以重复使用还是很简单的,用dij去推就好了。将起点赋值为1,向相邻的边推自己,如果0->1有两条边同样短,那么.. 0->1就推两次,所以0->1就有两种走法。这题不同,路径不能重复,so... 我们可以这么想;找到最路径中用到的边,将边的容量赋值为1,这么流过去,从起点到终点流这原创 2012-04-14 18:11:33 · 1194 阅读 · 0 评论 -
POJ 3436 网络流 英文阅读题+技巧题
题目大意:3 415 0 0 0 0 1 010 0 0 0 0 1 130 0 1 2 1 1 13 0 2 1 1 1 1组成acm电脑有3个零件,4种机器;1号机器能产生15次,需要的3个零件:完全不需要(0:不需要,1:一定要,2:可要可不要);产出材料:产出一个单位的2号零件(1:生产该材料,0:不能生产该材料);2号机器能生产10次,不原创 2012-04-13 22:36:12 · 870 阅读 · 0 评论 -
POJ 1637 混合图的欧拉回路
高级网络流建图啊!起初看这题,直接吓尿了... 不会....思路看这里......很不错的分析啦。一点点二逼的错误,让我找了好久!很久没这么二了!一个大于号打反了.. 还有一个变量没有初始化,我去!样例都让我跑对了!CODE:#include#include#include#include#define MN 222#define ME 1111#define原创 2012-04-14 13:28:42 · 3254 阅读 · 0 评论 -
POJ 3498 网络流英文阅读题
一如既往的,我又把题意看错了....题目大意:帝企鹅喜欢群居,现在有N块浮冰,给定企鹅跳跃能力D,给定Xi,Yi作为二维坐标,Ni为该浮冰上有多少企鹅,Mi为该浮冰上有多少企鹅离开后会破裂。问是否所有企鹅能否完成群居。5 3.51 1 1 12 3 0 13 5 1 15 1 1 15 4 0 1如上面这组数据,0,3,4浮冰上有企鹅,每块浮冰都能让一只企鹅离开。原创 2012-04-14 10:59:43 · 743 阅读 · 0 评论 -
ZOJ 2332 网络流英文阅读题
题目大意:某人有很多宝石,各种颜色和形状,该人有超能力能改变宝石,使之变化一种颜色及形状。该人要送宝石给女友,他忍受的每种形状的宝石有上限,女友忍受的每种颜色的宝石有上限。求能否使得该人送宝石给女友,使得两人都满意?思路:本来我的思路是错的。如下面第一个代码,我这么写:BF先让自己尽量忍受同形状的宝石,再将不能忍受的流向女友,当自己可以满流的时候,也就是自己完全能忍受,女友原创 2012-04-12 21:53:18 · 656 阅读 · 0 评论 -
POJ 3189 图论技巧题
这题的技巧就是:枚举---旋转卡壳法。题目大意:每头牛对每个谷仓有一个喜欢程度,FJ的目的就是要使得每头牛的happy值尽可能的相同,求最小的范围。这题的枚举还是很有技巧的。虽然知道怎么来滑动窗口。。 但是我的网络流EK算法太不给力了!没办法.. 去学习了下SAP勉强把这题切掉了= =#include#include#include#include#define MN原创 2012-04-12 16:13:49 · 518 阅读 · 0 评论 -
POJ 1149 好题!
网络流好题:这道题目的大意是这样的:有 M 个猪圈(M ≤ 1000),每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。依次来了 N 个顾客(N ≤ 100),每个顾客分别会打开指定的几个猪圈,从中买若干头猪。每个顾客分别都有他能够买的数量的上限。每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。问总共最原创 2012-04-12 15:54:35 · 649 阅读 · 0 评论 -
POJ 1815 最大流最小割枚举找割点
这题WA得我SB一样.......竟然是声明了一个函数没有调用.....题意:在联系网中,去掉最少的联系点使得从S和T无法联系。赤裸裸的求最小割点集的问题;建图:网上都有,就不说了。怎样找割点呢?在这里变成了割边。上一题POJ2125用的是DFS,找到集合S,那么分跨S与T集合的边就是割边了。这么做,对于二分图还是很方便的。这里却行不通了。前面讲过独立轨的概念,原创 2012-04-19 13:22:52 · 1344 阅读 · 0 评论 -
POJ 3084 最大流最小割求割边
这种题目做过蛮多道了,主要是再练习一下我的网络流链表写法。这题坑爹的理解错题意了,弄了很久。题意:有M个房间,现在要保护N号房间,房间编号为[0,M-1]。起初所有的房间的门都是打开的,房间内有关门的控制面板,也就是说,如果该房间能控制几个相应的门,则从该房间可以通过这些门去往其他房间。如果控制面板在其他房间里,这门就不能在这房间里打开。现在要求的是关上最少的门使得要保护的房间不被原创 2012-04-20 15:31:13 · 900 阅读 · 0 评论 -
POJ 2195 第一道最小费用流
终于切掉了我的第一道最小费用流了...#include#include#include#include#include#include#include#define MN 222using namespace std;struct Home{ int i,j; }H[MN];struct Man{ int i,j; }M[MN];struct Edge{ int u,v原创 2012-09-30 15:43:32 · 1060 阅读 · 0 评论 -
POJ 1419 最大独立集
查了很多资料,看了很多课件..这种NP难问题.. 确实什么轻易的解法... 长路漫漫。直接求最大独立集的方法能写了,最大团怎么求呢?另外吐槽一句:网上很多题解中都有最大独立集=补图的最大团。这没错。但是,很多都有一句下面是求最大团的代码.. 我去.. 概念清楚了再来写题解好么.. 吐槽完毕.#includeusing namespace std;int N,M;st原创 2012-09-05 11:08:33 · 1345 阅读 · 0 评论 -
HNUOJ12523 最短路径
Long Distance TaxiTime Limit: 30000ms, Special Time Limit:75000ms, Memory Limit:65536KBTotal submit users: 11, Accepted users: 7Problem 12523 : No special judgementProblem desc原创 2012-09-05 10:04:53 · 1067 阅读 · 0 评论 -
POJ 3659 树图的最小支配集
D是图G的一个顶点集,对于G的任一顶点U,要么U是D集合的顶点元素,要么U与D集合的某一顶点相邻。那么D称为图G的一个支配集。若在D中除去任何元素后,D都不再是支配集,则支配集D称为极小支配集。称D的所有支配集中顶点个数最少的支配集为最小支配集D0。r(G)=D0中顶点个数。称作G的支配数。最小支配集一定是极小支配集;任何一个支配集以一个极小支配集为子集;G中所含的极小支配原创 2012-09-01 15:29:27 · 958 阅读 · 0 评论 -
POJ 2584 多重匹配
注意细节细节!!!用网络流来做一定很轻松-.-将多重匹配变为最大匹配,数据较小,可以过....#include#includeusing namespace std;struct Edge{ int v,next;}E[111111];struct SEG{ int s,e;};int ptr[222],match[222],Edgenum;原创 2012-08-31 23:24:10 · 737 阅读 · 0 评论 -
POJ 2060 最小路径覆盖
有很多出租车订单,标记了开车时间与起点终点。如果出租车能在上一个订单结束后,并且在下一个订单的开车前1min到达起点,那么我们说,这两个订单可以用一辆出租车来完成任务。转化为最小路径覆盖问题。这里是有向图的最大匹配,可以用匈牙利算法求解。以上....#include#includeusing namespace std;struct SEG{ int s,e原创 2012-08-31 20:26:22 · 787 阅读 · 0 评论 -
POJ 1486 唯一二分图匹配 好题
一道很好的题目。大意:很多透明的矩形薄片平摊在平面上,每个矩形薄片有数字编号。现在给出矩形薄片的边界与编号的坐标。求出能唯一确定的矩形薄片的字母标号与数字编号。很容易转化成二分图的题。开始题意弄错以为是必须全部都唯一匹配则输出匹配序,不行则输出none.现在的题意是求关键边... 不用删边,特判就好.#include#includeusing namespace原创 2012-08-31 17:51:58 · 842 阅读 · 0 评论 -
POJ 2536 水匹配...
#include#include#includeusing namespace std;struct POINT2D{ double x,y;}point[222];struct Edge{ int v,next;}E[111111];int match[222],ptr[222];int Edgenum;bool vis[222];void a原创 2012-08-31 22:32:45 · 837 阅读 · 0 评论 -
POJ 2062 最大匹配
这题WA了很久很久,确定算法没错.. 但是还是WA了很久很久...原因是Ace的初值没有赋值=.=细节决定成败!!#include#includeusing namespace std;struct Edge{ int v,next;}E[6666];bool vis[66];int ptr[66],match[66],Edgenum; void addE原创 2012-08-31 21:48:48 · 889 阅读 · 0 评论 -
最小路径覆盖
DollsTime Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KBTotal submit users: 19, Accepted users: 16Problem 12499 : No special judgementProblem descriptionD原创 2012-08-31 15:03:40 · 661 阅读 · 0 评论 -
POJ 1719 有意思的水题[二分图多重匹配]
题目大意:有一个R*C(R现在求:在每列恰巧取一个,每行最少取一个的取法,按列的顺序由小到大输出取出棋子所在的行。我的思路:由于每行最少取一个,可以先把行的最大二分图匹配做出来,如果行都不能满足,肯定是无解的。若行能匹配,再在流图中找到匹配的路径。那么所有的行都找到了相应的列。那么余下的列随便匹配就好了。网上思路:用带上下限的网络流来做,基本上做到这种专题了。但是想原创 2012-04-20 22:09:30 · 828 阅读 · 0 评论 -
POJ 2987 最大流最小割最大权闭合图
基本的最小割问题做得也差不多了....这题整死我了.... 在Amber的论文里有这个解法,大家去看看吧。其他的不说了。这题把数据类型全都改成long long才过,瞪大眼睛找了一晚上,没找出trick.... 悲催.... 如果你也WA了,不妨试试这种方法... PS:我连bool都改long long了= =|||#include#include#define原创 2012-04-19 22:31:45 · 717 阅读 · 0 评论 -
POJ 3469 构图最小割+链表SAP
题目大意:有一台双核处理器的电脑,现有很多模块,每个模块放在不同的核中都有一个花销。若某两个模块不放在同一个核中执行,那么会产生额外的花销。求出使得所有的模块都进入处理器中的总花销值最小。首先可以明确的是,该题为二分图,模块放入两个核中。如果没有惩罚。那么该题就是赤裸裸的最小割(其实是贪心)。源点S与Acpu中的点连边,容量为模块放在A核中的费用。B核中的点与汇点连边,原创 2012-04-19 17:57:11 · 759 阅读 · 0 评论 -
POJ 2455 网络流英文阅读题
老戴找...这题还是很有意思的.. 哈哈~也想了我蛮久的... 但是这题的无向边感觉有点不对劲啊!这也能AC??我都不相信啊!!网络流的边还是不能轻易覆盖的!#include#include#include#include#define MN 222#define INF 1111111using namespace std;struct EDGE{ int原创 2012-04-10 22:29:08 · 543 阅读 · 0 评论 -
POJ 2112 网络流英文阅读题
这题的题意佷坑爹啊。。。虽说是很明显的二分题。说有K个奶牛机编号1-K,有C头奶牛,编号k+1-K+C这样形成了K+C阶的距离矩阵。每台奶牛机可以处理T只奶牛开始呢... 只把机器和奶牛连了边,机器与奶牛的边全部去掉了... 无限WA...后来想.. 如果流通过机器之间传到奶牛呢= =!!!有剩余流就可以做到了!顿悟,狂敲,交... 无限WA....后来看了看题,机器之间的流不原创 2012-04-10 22:26:26 · 542 阅读 · 0 评论 -
POJ 2240 Floyd
一道有趣的题目,zzy大神告诉我的用floyd... 基本上没想什么map现在用得比较熟练了,想起昨天的福州的三国杀,写的我想吐血啊!题目就是求汇率是否能形成一个环,使得利滚利,钱生钱。这样只要把初始结点对自己的汇率调整为1.0,对其他的是0,这样来用Floyd就可以解决原创 2011-10-08 20:54:07 · 566 阅读 · 0 评论 -
POJ1511 SPFA
第一次做SPFA,本来觉得会很难很难写,所以一直都没有去涉及这个方面的题目。在FUZHOU网络赛上遇到了属于SPFA算法的题目,可是我却完全不知道。这次网络预选赛又是3题,还是没能去成现场赛... 最后一年了,我还是这么弱小,A题还是那么慢,所以要好好把握写题的速度尽量快起来!!原创 2011-10-08 20:44:46 · 634 阅读 · 0 评论 -
POJ 2186 强连通分量 Tarjan算法
本来这几天打算做2-SAT的,昨天和zzy看了算法之后,其中说到需要解强连通分量,于是便开始学习了。虽然以前也学习过强连通分量的算法,那时只知道一个就是Kasaraju算法,当时对于其两次DFS先正搜再反搜的顺序不以为然,我坚定地先反搜再正搜,结果果断的WA了!zzy那时秒A过的原创 2011-10-13 13:53:11 · 821 阅读 · 0 评论 -
POJ 2553 强连通分量 Tarjan
很悲剧的读错题了。本来以为和Popular Cow一样,对于所有的点 都被可达这样的点为sink点。实际上的意思是对于所有的w点到v点有路径且v到w也有路径这样的点才叫sink点,所以其在w->v有边而v->w没有边,这样的点不是sink点。当且仅当上述两个条件都满足时,才为si原创 2011-10-13 21:59:13 · 958 阅读 · 0 评论 -
POJ 3169 SPFA 差分约束 最大值->最短路径求法
这道题还比较正常~话说~还是那个道理,最短路径求最大值....这题比较新的一点就是出现了三种情况1.负环无解2.距离太远不可达 N点未更新3.最大值#include#include#define MAXN 2005#define MAXM 20010#原创 2011-10-11 21:21:00 · 683 阅读 · 0 评论 -
POJ 1716 差分约束 SPFA
和上题一样的解法。代码也一样,一样纠结了很久。一样不知道为什么!!#include#include#define MAXN 20001#define INF 0x7F7F7F7Fusing namespace std;struct Node{ in原创 2011-10-11 20:18:32 · 514 阅读 · 0 评论 -
差分约束系统总结
2011/10/08--2011/10/11四天的SPFA,Bellman_Ford,差分约束。今天来个总结吧(虽说还有SPFA的优化算法没学,以后遇到题目再解决吧)采用循序渐进的办法来阐述这几天的学习:1.Bellman_Ford算法:主要思想在于三角形不等式与原创 2011-10-11 23:14:54 · 687 阅读 · 0 评论 -
POJ 1201 SPFA 差分约束
一道很蛋疼的题... 虽然很明显的差分约束,但是我就是那么错了。N久N久啊~~到现在我还是不知道为甚么!!!虽然很明显的是差分约束题,而且网上的资料乱七八糟的.... 看到了两条有用的结论:1.求最大值,采用最短路径求法。2.求最小值,采用最长路径求法。但是!为什么啊原创 2011-10-11 20:16:53 · 590 阅读 · 0 评论 -
POJ 1161 Floyd 构图
AC~ 调试了N久的一道题啊~~ 还是英语不行,把题中的变量意义读错了!结果怎么调试怎么不过啊~~悲剧悲剧哦~总算是过了~~--------------------------------------------------------------原创 2011-09-22 09:37:53 · 628 阅读 · 0 评论