网络流
Evolution__
这个作者很懒,什么都没留下…
展开
-
[网络流]poj2112 Optimal Milking
题意:有K头奶牛和C台挤奶机,每台挤奶机最多供M头奶牛使用,给出奶牛与挤奶机之间的距离(邻接矩阵),求走得最多的奶牛最少要走多少才能保证每一个奶牛都能找到挤奶机。思路:首先给出的距离必然不是最短路,那么要让求的时候尽可能简单,使用Floyd算一下最短路。然后求最大值最小,想到用二分的办法,让求解区间成为[l,r),最后返回r即为答案。可以想到,l = 0是必然不成立,而r =原创 2016-07-21 19:29:36 · 283 阅读 · 0 评论 -
[最大流]增广路算法Edmonds-Karp
最大流可以看做是把一些东西从源点s送到汇点t,可以从其他的点中转,每条边最多只能输送一定的物品,求最多可以把多少东西从s送到t,这样的问题就是最大流问题。如图节点1为源点,节点6位汇点每一条边上的数字即为这条边最多能输送的数量,也称为容量。(对于不存在的边,容量为0)这个图能够求出的最大流为23从源点开始,送12到2、送11到3,2送12到4,3送7到4、送4到5,4送原创 2016-07-16 20:47:49 · 6354 阅读 · 1 评论 -
[网络流]poj1698 Alice's chance
题目大意:Alice要去拍电影,要拍很多场电影,每部电影在一周中只有其中的几天可以拍,需要拍D天,最多必须在W周之内完成,Alice每天只能拍一场电影,如果Alice可以满足所有电影的要求,输出“Yes”,否则输出“No”输入格式:先输入T,有T组数据每组数据第一行是N,表示有N部电影接下来N行,每行有9个数字,前7个代表一周中的每一天是否能拍,第八是D,第九是W思路:原创 2016-07-18 22:08:24 · 337 阅读 · 0 评论 -
[网络流]poj1149 PIGS
题意:一个农场有M个猪圈,每个猪圈里有很多猪,现在有N个顾客,每个顾客可以拿到一些猪圈的钥匙来买猪,买完之后会关上门,顾客是严格按照顺序来的,不会出现顾客A和顾客B同时在农场的情况。顾客打开门之后,这个猪圈里的猪可以任意换到其他的打开着的猪圈中,求最多能卖多少只猪。思路:这样的网络流题目,必然要构图。从源点开始,向每个猪圈的第一个顾客连一条边,容量为这个猪圈的猪的数量。接着后面来的原创 2016-07-19 20:41:23 · 326 阅读 · 0 评论 -
[网络流]最大流算法 Dinic
最近做了几道题,发现用Ek算法会超时,而事实上,Ek算法使用的机会并不多,更多的是用Dinic和ISAP算法。所以特地找了一段时间来学习、理解和编Dinic算法。类似之前的储存方法,但稍作修改,代码如下:struct Edge { int from, to, cap, flow;};这样储存的是一条边。在做题的过程中,发现一个技巧(也算是技巧吧),出现无向边时,不需要加两条边原创 2016-07-29 21:30:39 · 4813 阅读 · 1 评论 -
最大流-最小割定理&poj3469 Dual Core CPU
对于最大流问题中,经常会涉及到一个叫做最小割的部分,那么,首先先来看看最小割是什么。在一个图G(V,E)中,通过去掉一些边的方式,使得节点u与节点v不连通,这就是节点u和节点v的一个割。在G之中,有一些路径联通s,t,如果去掉一些边使s,t不连通,那么这个割的办法就是一个s-t割。每一个割的容量就是这个割集中所有边的容量之和。讲完这些基础理论,自然容易猜到最小割就是在图G中,容量最原创 2016-07-30 20:25:40 · 506 阅读 · 0 评论 -
[网络流]poj3281 Dining
题意:有N头奶牛,D种食物和K种饮料,每头奶牛有自己喜欢的食物和饮料,每种食物和饮料只能被一头奶牛选,一头奶牛只能选一种食物和饮料,求最多会有多少头奶牛既能吃到自己喜欢的食物又能喝到喜欢的饮料。思路:这种题目就是赤裸裸的最大流。建立一个源点,从源点开始,连接每一种食物,容量为1,每种食物连接喜欢这种食物的奶牛,容量为1,每头奶牛连接它喜欢的饮料,所有饮料连接汇点,做一次最大流。原创 2016-07-20 19:58:35 · 290 阅读 · 0 评论 -
[网络流]poj2391 Ombrophobic Bovines
题意有很多的雨棚,每个雨棚现在有aia_i头奶牛,每个雨棚可以装bib_i头奶牛 给出各个雨棚之间的距离,求出能够让所有奶牛都在雨棚之中的最小时间,如果不能满足输出-1思路可以先用floyd求所有点对之间的最短距离,然后二分时间,如果当前的限制下能够让所有的奶牛都有雨棚,那么r←midr ← mid,否则l←mid+1l ← mid + 1 求是否能让所有的奶牛都在雨棚中可以用以下原创 2016-08-10 14:51:07 · 240 阅读 · 0 评论 -
[网络流]SPOJ962 Intergalactic Map
题意有一个无向图,求是否能够不重复经过一个点地从1走到2再走到3思路首先,可以想到利用网络流来求解,建图的时候,把每一个点拆成两个点,之间连一条容量为1的弧 然后根据原图将每一条弧加入到网络中,注意是像Pi→P′jP_i → P'_j来加边 但是要注意一点,因为是从1走到2再走到3,显然这是很难做的,那么可以换一个思路,假设不是从1走到2再走到3,而是从2开始,不重复经过一个点,走到1和3 这原创 2016-08-13 08:14:55 · 304 阅读 · 0 评论