题目:hdoj 3605 Escape
分类:中等最大流 | 二分图多重匹配
题意:给出n个人和m个星球,每个人有想去的兴趣,然后每个星球有容量,问能不能让所有人都住在自己想去的星球?
分析:最大流的话卡的非常严,这个题目写了之后手写MTL,超内存,然后加入状态压缩之后TEL,后面没办法了看别人说C++提交能过,改C++Compilation Error,不容易呀,...
分类:
其他好文 时间:
2014-08-24 12:59:02
阅读次数:
193
题目:hdoj 4183 Pahom on Water
题意:题目有点长,读懂了就是个水的最大流,每次从789开始到400,走的话必须是两个圆相交而且频率递增的,每个点只走一次,求有没有满足这样条件的。
分析:题目读懂就比较水了。直接按照题目意思建图,初始点和结束点容量为2,其他点只走一次容量为1,然后求最大流。
AC代码:
#include
#include
...
分类:
其他好文 时间:
2014-08-24 11:44:42
阅读次数:
195
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4309题意:方法:用二进制枚举所有p>0的边是否修,然后按下面建图,跑最大流,输出最大的最大流及其对应的修桥费用建图:对于每个城市顶点i,连边S->i,流量为城市的人数如果pv,流量inf;u->T,流量w如...
分类:
其他好文 时间:
2014-08-24 01:31:52
阅读次数:
221
就当时最大流再次复习吧。。动手敲一下。。。经典解法不想说了。。这题主要是坑时间,10个提交7个tle。
环的判断,曾经用简单dfs方法,这次的就tle了!别人说要用很屌的dinic,我感觉自己dinic不可能超时,坚信是判断环慢了,于是学习了新断环的方法:删除点/边!从某点进去,若该点的所有边都遍历过还是无功而返,那么该店以后不用再进入了(这么简单的道感觉自己应该要想到啊!愚蠢啊!)开始时用只删...
分类:
其他好文 时间:
2014-08-23 23:01:41
阅读次数:
456
题目地址:HDU 3315
这个题的思路是自己想出来的,自我感觉挺巧妙的。。。(大牛勿喷。。。)对大胆建图又多了一份信心。
具体思路是构造一个二分图,Si连源点,Xi连汇点,流量都是1,费用0.然后当Si可以赢Xj的时候,就对这两人连一条边,费用值为-Vi*1000,如果i==j的话,费用值就再减1,因为题目要求尽量不改变原先的顺序,所以说应该尽量让序号相同的对打。而费用值减1的话,会优先考虑...
分类:
其他好文 时间:
2014-08-23 23:00:21
阅读次数:
221
题目地址:POJ 3680
这题的建图真心想不出来。建图思维还是不够开阔,不够大胆。
这题要先对坐标进行离散化。可以用左边的点发出一条到右边的点的边,容量为1,费用为负的权值。然后从左往右将依次将相邻的两个点都连起来,权值为0,容量为k,也就是说,如果选了这个区间,就会从费用为负数的边流过去,否则,就是从这个费用为0的边流过去。然后建立一个超级源点与最左边的点相连,权值为0,容量为k,这样就保...
分类:
其他好文 时间:
2014-08-23 21:43:31
阅读次数:
226
解题报告
题目传送门
思路:
bfs建图跑一下费用流就行。
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using namespace std;
struct E {
int v,cost,cap,next;
} edge[100000];
int head[1000],cnt,dis[1000],...
分类:
其他好文 时间:
2014-08-23 19:07:51
阅读次数:
243
题目:hdoj 3572 Task Schedule
题意:有m台机器和n个任务,然后给出每个任务的开始时间和结束时间以及需要的天数,让你判断有没有这样条件的安排
分析:网络流题目,比较难想到的是把时间区间怎么在图里面建,其实是在这个区间的每个点都连一条边,建图方案。
超级源点s到每个任务 i 连边,容量为第 i 个任务需要的天数,然后每个任务向满足要求的日期连一条容量为1的...
分类:
其他好文 时间:
2014-08-23 19:05:41
阅读次数:
261
题目:hdoj 3549 Flow Problem
题意:给出一个图,让你求最大流。
分析:这个题目用dinci写的,因为点比较少,而dinci复杂度O(m*n^2),但是还是跑了160ms,不知道15的神牛怎么写的。
dinci的写法要注意的地方就是存图的时候要考虑怎么存,因为要更新网络残量,即反向的流量,所以这里要注意一下。
思想就不讲了,很多地方有讲。
代码:
#...
分类:
其他好文 时间:
2014-08-23 17:45:51
阅读次数:
252
题意:给出一个有向强连通图,每条边有两个值分别是破坏该边的代价和把该边建成无向边的代价(建立无向边的前提是删除该边)问是否存在一个集合S,和一个集合的补集T,破坏所有S集合到T集合的边代价和是X,然后修复T到S的边为无向边代价和是Y,满足Y
分析:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可。
如果存在可行流 那么说明对于任意的...
分类:
其他好文 时间:
2014-08-23 17:44:41
阅读次数:
245