点击打开链接
多源多汇最大流,虚拟一个源点s'和一个汇点t',原来的源点、汇点向它们连边。
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 500 + 5;
const int INF = 100000000;
struct Ed...
分类:
Web程序 时间:
2014-08-01 23:13:32
阅读次数:
312
题意,一个矩阵,上面可以横放或者竖着放骨牌(1X2)保证横的与横的不重叠,竖的和竖的不重叠,求拿掉最小的牌,使所有的都不重叠。
分析:一看,不重叠就是没有边,拿最少,就是留最多,最大独立集啊!二分图,n+m个-最大流(最大匹配)=ans。
简单题。
#include
#include
#include
#include
using namespace std;
const int inf=0...
分类:
其他好文 时间:
2014-08-01 19:52:32
阅读次数:
267
题意,给一个矩阵,告诉你每行和、每列和,并且限制所填数不大于k,问矩阵是否唯一。
经典建图不说了,第一次遇到判断最大流唯一性的,学习了:用dfs来判断残网中是否还存在环,若存在,则表明绕这个环走一圈,(流一圈流量),还是最大流保持不变,说明还有解。输出方案就EASY了。
WA了一天:第一TLE,因为这题卡DINIC,我的没有优化,后来在zz1215学长加了一行代码,在增广的时候,若发现最小总流...
分类:
其他好文 时间:
2014-08-01 16:09:51
阅读次数:
259
最大流最小割定理:移除最小边集使网络流中断的集值等于这个网络的最大流。建图: 第一个cpu 流向第i的 模块的流量为ai , 第i个模块流向 第二个cpu的流量为 bi 。模块之间连边 a->b= w b->a=w。#include #include #include #include #incl....
分类:
其他好文 时间:
2014-08-01 15:34:11
阅读次数:
281
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int n,p,c,m;const int ...
分类:
其他好文 时间:
2014-08-01 12:53:51
阅读次数:
235
POJ 3436 ACM Computer Factory
电脑公司生产电脑有N个机器,每个机器单位时间产量为Qi。
电脑由P个部件组成,每个机器工作时只能把有某些部件的半成品电脑(或什么都没有的空电脑)变成有另一些部件的半成品电脑或完整电脑(也可能移除某些部件)。求电脑公司的单位时间最大产量,以及哪些机器有协作关系,即一台机器把它的产品交给哪些机器加工。
Sample ...
分类:
其他好文 时间:
2014-08-01 00:07:50
阅读次数:
322
题目地址:POJ 3189
我晕啊。。。飞快的把白天的任务完成又有什么用。。。节省下来的时间活生生的被我的手残给全浪费掉了。。。又调了一整天,问题居然是一个地方的n和m写反了!!!反思。。反思。。。面壁去。。。
这题就是二分区间,然后枚举区间位置。然后建图就行了。不多说。。
代码如下:
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-08-01 00:02:00
阅读次数:
263
点击打开链接
Redraw Beautiful Drawings
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1660 Accepted Submission(s): 357
Problem ...
Dinic 算法模板
Dinic算法是一种比较容易实现的,相对比较快的最大流算法。
求最大流的本质,就是不停的寻找增广路径。直到找不到增广路径为止。
对于这个一般性的过程,Dinic算法的优化如下:
(1)Dinic算法首先对图进行一次BFS,然后在BFS生成的层次图中进行多次DFS。
层次图的意思就是,只有在BFS树中深度相差1的节点才是连接的。
这就切断了原有的图中的许多...
分类:
其他好文 时间:
2014-07-31 13:30:26
阅读次数:
342
题目就是问如何用最小的板覆盖所有的草地。可以横着放,也可以竖着放,允许一个草地放多个点。
建图方法就是 每个横向的草地作为X,纵向连续的草地作为Y. X连接Y的边表示, 这里有他们的公共点。。
很显然,覆盖所有草地,就是覆盖所有的边
//tpl
//ipqhjjybj_tpl.h
//header.h
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-31 13:25:56
阅读次数:
207