HDU 4289 Control (网络流-最小割)
题目大意:
先是n,m表示n个城市,m条边,接下来src,sink,表示一个小偷从起点到终点,接下来n行表示每个城市放置警察需要的花费,接下来m行表示m条无向边。问你阻断小偷需要多少花费?
解题思路:
将n个城市拆点构边,根据最小割定理,阻断起点到终点的连同最小割的花费也就是求最大流。...
分类:
其他好文 时间:
2014-08-15 17:59:19
阅读次数:
189
题目的大体意思是:给你一些有向边让你求出给出的点s,t之间最短路的条数。
两边spfa从s到t,和从t到s然后求出在最短路上的点建一条容量为1的边,然后求出s到t的最大的流量,就是最短路的数目。
PS:代码写的姿势不够优美。
Marriage Match IV
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768...
分类:
其他好文 时间:
2014-08-15 16:05:49
阅读次数:
336
这个题目是说,有n个女的和男的找伴侣。然后女的具有主动选择权,每个女的可以选自己喜欢的男的,也可以挑选k个不喜欢的男的,做法就是:把女的拆点,u1->u2建立一条容量为k的边。如果遇见喜欢的男生i->j+2*n建一条容量为1的边,否则i+n->j+2*n建一条容量为1的边。最后将源点和女生相连容量为mid,汇点与男生相连容量为mid。枚举mid,看是否会产生满流。
可能姿势不够优美dinic超时...
分类:
其他好文 时间:
2014-08-15 09:29:48
阅读次数:
287
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1314
题意:某恐怖组织要建立一个核反应堆,他们需要设计一个冷却系统,n个点由m个管子连接,为使液体循环流动,每个节点的总流入量需要等于总流出量,现告诉你每根管子的最小流量及最大流量及它们连接的两点(有向),问是否存在可行流,如存在,输出每个管子的流量。
有上下...
分类:
其他好文 时间:
2014-08-15 01:30:16
阅读次数:
306
http://acm.hdu.edu.cn/showproblem.php?pid=1565思路:将横纵坐标和为偶尔染白色,其他染黑色,黑点连接源点,流量为该点的值,白点连接汇点,流量为该点的值,黑白点有相邻的就连边,值为无穷大。最后求最大流,即该图的最小割。PS:刚开始不明白为为什么最大流会等于最...
分类:
其他好文 时间:
2014-08-14 16:36:08
阅读次数:
230
思路:给定一系列时刻表,求能满足各个时刻的最小火车数量。打眼一看, 把此题归入到最大流,仔细一想不符合流网络的规律,换思路。由于是一个最优化问题,自然想到动态规划和贪心。最后确定贪心。从最早出发的火车切入,到目的地后便可以选择下一次满足的时刻表,贪心思想找最近的一个时刻表(关于贪心的证明可以参看《图...
分类:
其他好文 时间:
2014-08-14 16:17:18
阅读次数:
222
#pragma warning(disable:4996)#include #include #include #include #include #include #include #include #include #include using namespace std;#define max...
分类:
其他好文 时间:
2014-08-14 03:43:37
阅读次数:
232
链接:http://poj.org/problem?id=3308
题意:未来世界火星人要入侵地球,他们要派一些伞兵来摧毁地球的兵工厂,兵工厂可以视为一个m*n的矩阵,现在知道了他们每个伞兵的降落位置。为了粉碎火星人的阴谋,我们需要在某行或某列来架一个机关枪来消灭一整行或一整列的火星人,但是在这需要一定的花费,告诉每行及每列架机关枪的花费,总花费是每行及每列的花费相乘。求使得火星人全部被消灭的最...
分类:
其他好文 时间:
2014-08-13 22:31:27
阅读次数:
295
3081 题意:
n个女孩选择没有与自己吵过架的男孩有连边(自己的朋友也算,并查集处理),2分图,有些边,求有几种完美匹配(每次匹配每个点都不重复匹配)
我是建二分图后,每次增广一单位,(一次完美匹配),再修改起点还有终点的边流量,继续增广,直到达不到完美匹配为止。网上很多是用二分做的,我觉得没必要。。。(网上传播跟风真严重。。。很多人都不是真正懂最大流算法的。。。)
3277 ...
分类:
其他好文 时间:
2014-08-13 22:24:47
阅读次数:
447
对于每个点拆点成为两个点a,b,连接a到b的上界为1,下界为1的边,保证用过一次且仅一次。然后若点u可到达点v,则连接即可。建成了一个上下界网络,将下界拆出去,求最大费用最大流就好。#include #include #include using namespace std;const int N=...
分类:
其他好文 时间:
2014-08-13 22:13:07
阅读次数:
344