
网络流
sepNINE
it is written
展开
-
poj 1149 PIGS 最大流
题意:有 M 个猪圈每个猪圈里初始时有若干头猪,开始时所有猪圈都是关闭的。 依次来了 N 个顾客,每个顾客分别打开指定的几个猪圈,从中买若干头猪,每个顾客最多能买的猪数是确定的。 每个顾客走后,他打开的那些猪圈中的猪可以自由流动,然后所有猪圈重新关上。分析:最大流,关键是处理顾客i买完猪后他打开的猪圈可以自由流动:假设j在i之后来,他们都能打开猪圈k,那么i是可以帮j买猪的,i买完他要原创 2015-01-06 14:23:11 · 688 阅读 · 0 评论 -
poj 2125 Destroying The Graph 最小点权覆盖
题意:求一个图的最小点权覆盖。分析:拆点转化为求最小割。代码://poj 2125//sep9#include #include #include using namespace std;const int maxN=300;const int maxM=100002;struct Edge{ int v,f,nxt;}e[maxM*2+10];que原创 2015-04-18 23:30:37 · 993 阅读 · 0 评论 -
poj 3422 Kaka's Matrix Travels 费用流
题意:给一个n*n的矩阵,每次从左上角走到右下角并取走其中的数,求走k次能取到的最大和。分析:费用流边的容量有限制的作用,费用有求和的作用,对于每个点只能取一次,容易想到把这个点拆成两个点并连上容量为1,费用为该点数的边。但明显有的流要“跳过”这个点,如何处理呢?可以加一条容量为无穷,费用为0的边,这样不参加这点费用计算的流就可以"跳过"这个点了。代码://poj 3422/原创 2015-04-08 16:07:44 · 642 阅读 · 0 评论 -
poj 2391 Ombrophobic Bovines 二分+最大流
同poj 2112.代码://poj 2391//sep9#include #include #include using namespace std;typedef long long ll;const int maxN=1024;const int maxM=100002;const ll MAX=(1ULL<<63)-1; struct Edge{ int原创 2015-04-20 11:51:03 · 799 阅读 · 0 评论 -
poj 3308 Paratroopers最小点权覆盖
//poj 3308//sep9#include #include #include using namespace std;const int MAXN=128;const int MAXM=10024;const double MAX=100000.0;struct Edge { int v,nxt; double f; }e[MAXM*2+10];原创 2016-09-12 23:12:33 · 494 阅读 · 0 评论 -
poj 3436 ACM Computer Factory 网络流EK算法
题意: 有n台机器编号为1,2,3,..i..n,每台机器可以加工qi台计算机,计算机的状态由他的p个零件的有无表示,再给出每台机器对计算机状态的改变情况,求这个系统最多能生产多少台计算机和机器间计算机的传递情况。分析: 理解题意有点难,因为有最大加工数限制建图记得拆点,然后EK解决,EK比dinic慢但是简洁而且比较好展示各条边上的流量情况。代码://poj原创 2016-09-30 18:24:40 · 573 阅读 · 0 评论 -
poj 2987 Firing 最大权闭合图
题意:裸的最大权闭合图。分析: 国家集训队论文>里有完整的建模推导证明,建议搜了学习下~这里直接用dinic搞了。代码://poj 2987//sep9#include #include using namespace std;typedef long long INT; const INT MAXN=5000; const INT MA原创 2016-11-30 22:23:10 · 525 阅读 · 0 评论 -
poj 1966 Cable TV Network 无向图最小割
//poj 1966//sep9#include #include using namespace std;const int MAXN=512;const int MAXM=20000;struct Edge{ int v,nxt,f;}e[MAXM],e_copy[MAXM];queue que;int src,sink;int g[MAXN],dist[MAX原创 2017-07-20 13:16:22 · 328 阅读 · 0 评论 -
poj 1815 Friendship 求字典序最小的最小割
题意:拆点后是求无向图字典序最小的最小割。分析: 设有边e(u,v),则下面三点等价: 1:e可以作为割边(最小割集不唯一)。 2:去掉e后最小割值变小。 3:残量网络中不存在u到v的增广路。 所以从编号小的边开始,判断该边可不可能是割边,如果可能,把这条边去了,退流。如果不可能,保持原状,处理下一条边。代原创 2017-07-19 06:07:53 · 724 阅读 · 0 评论 -
poj 2455 Secret Milking Machine 二分+最大流
题意:给一图,求从点1到n的t条边不相交的路径,目标是最小化最t条路径中的最大边,输出该最大边。分析:求最值的问题满足单调性都可以用二分来做,二分是加速的枚举方法。这题二分枚举最大边建图,每次用长度小于等于二分值的边建图并置容量为1,求最大流即可。代码://poj 2455//sep9#include #include #include using namespace原创 2015-04-02 20:26:32 · 795 阅读 · 0 评论 -
poj 3680 Intervals 最大费用流
题意:给n给开区间(ai,bi)及相应权值wi,现在要选一些区间,要求任一点不能被超过k个区间覆盖,目标是最大化总的权重。分析:转化为求最大费用流,改改最小费用流的模板就好。代码://poj 3680//sep9#include #include #include #include using namespace std;const int maxN=2048;原创 2015-04-01 20:22:32 · 699 阅读 · 0 评论 -
poj 3614 Sunscreen 网络流或二分图多重匹配或优先队列
题意:有C头牛,每头牛有它可以接受的药的最小值和最大值,有L瓶药,每瓶药有一个值u和它最多能给v头牛用,求最多有多少头牛能满足。分析:网络流或二分图多重匹配或优先队列,这道题优化了我的dinic模板,原来的模板会TLE。。。代码://poj 3614//sep9#include #include #include using namespace std;const原创 2015-01-08 10:25:46 · 985 阅读 · 0 评论 -
poj 2289 Jamie's Contact Groups 二分+网络流
题意:让n个点和m个点对应,一个n只能对应一个m,一个m可以对应多个n,对每个n给出他能对应的m点集合,求m对应n多数的最小值。分析:网络流+二分。代码://poj 2289//sep9#include #include using namespace std; const int maxN=2048; const int maxM=1000000;原创 2015-01-08 07:40:29 · 1016 阅读 · 0 评论 -
poj 3281 Dining 最大流
题意:有n头牛,每头牛都有自己喜欢的食物集和饮料集,现在提供1到f类型的食物各一个和1到d类型的饮料各一个,问最多有多少牛的食物和饮料需求能被同时满足。分析:最大流,一开始v-n-f-f-d-s建图老wa,后来想可能是f-d之间的边连错了,毕竟f-d之间的关系没有明确给出,后来发现n-f和n-d之间的关系是明确给出的啊,所以要把牛放中间,食物和饮料放两边见图:v-f-n-n-d-s。原创 2014-12-23 08:31:54 · 689 阅读 · 0 评论 -
poj 3204 Ikki's Story I - Road Reconstruction 最大流
题意:在有向流网络中求有多少条边满足增加其流量能增加总流。分析:先求最大流,然后从源汇点沿不满流边染色,边尾被源点染色,边头被汇点染色则计数。代码://poj 3204//sep 9#include #include using namespace std; const int maxN=512; const int maxM=10024; s原创 2015-01-03 21:06:59 · 685 阅读 · 0 评论 -
poj 3469 Dual Core CPU 最小割
题意:有n个模块在A和B核组成的双核计算机上运行,各个模块在A,B核上的运行时间已知,另外有m个三元组(a,b,w),表示a模块和b模块如果不在一个核上运行要产生w的额外花销,求总的最小花销。分析:即把n个模块划分为两个集合,可用求最小割的方法解决。代码://poj 3469//sep9#include #include #include using namespac原创 2015-01-23 17:47:43 · 826 阅读 · 0 评论 -
poj 2135 Farm Tour 最小费用流入门模板
最小费用流90行模板+例题,不容错过!!!原创 2015-03-16 10:12:08 · 759 阅读 · 0 评论 -
poj 2396 Budget 边容量有上下界的最大流
题意:给一个矩阵的每行和及每列和,在给一些行列或点的限制条件,求一个满足的矩阵。分析:转化为有上下界的网络流,注意等于也是一种上下界关系,然后用dinic算法。代码://poj 2396//sep9#include #include #include using namespace std;const int maxN=210;const int maxM=40;原创 2015-03-14 00:05:08 · 1224 阅读 · 0 评论 -
poj 3498 March of the Penguins 点流量有限制的最大流
题意:给n块浮冰的坐标,每块浮冰上的企鹅数和能承受跳起的次数,求有哪些浮冰能让企鹅能到一起。分析:拆点将点流量的限制转化为边流量的限制,求最大流。代码://poj 3498//sep9#include #include #include #include using namespace std;const int maxN=128;const int maxM=原创 2015-03-14 20:07:51 · 797 阅读 · 0 评论 -
poj 3155 Hard Life 最大密度子图
//poj 3155//sep9#include #include using namespace std; const int MAXN=512; const int MAXM=20000;const double MAX=1e7; typedef double cap_type; struct Edge { int v,nxt; ca原创 2017-08-04 06:01:04 · 458 阅读 · 0 评论