题意:给一个矩阵,m代表人H代表房子,现在想让人移动最少的步数回到房子中分析:可用二分图和网络流来写二分图:X集合为人Y集合为房子,人与每个房子的连一条边为-dist的边即可,求出最大权值,然后取反即可网络流:用费用流来做,人与房子之间建立容量为1,费用为dist的边,求出最小费用即可由于人与每个房...
分类:
其他好文 时间:
2014-08-07 00:24:27
阅读次数:
266
POJ 2195 Going Home(网络流-费用流)
题目大意:
m表示人,H表示房子,它们之间的距离是曼哈顿距离,问你所有人一人个房子的总花费是多少?
解题思路:
用最小费用流即可。构图略。...
分类:
其他好文 时间:
2014-08-06 19:19:32
阅读次数:
275
River Problem
题意:一个有向树(河流),只有一个汇点1,每条边只有一个出度。有些河道有污染指数xi,必需要治理,有m段路径,可以去覆盖这些,每被覆盖一次,xi降低响应值。
:即 给出一些边必需要覆盖的次数,用m段路径去覆盖,每次覆盖有相应费用,求最小费用。
思路:这题被誉为难题,给一个网络流,给出一些边的流量下界,以及给用某些路段流量去流满足要求。这里与正常网络流相悖,是wi>...
分类:
其他好文 时间:
2014-08-06 19:11:22
阅读次数:
313
题目地址:HDU 3488
今晚才发现以前的费用流模板居然是错的。。。。。。。有漏洞。。。。但是居然都AC了那么多题。。想想也是。。做的费用流也不多,而且都是流量为1的,这个漏洞是不会影响的。因为以前在每次最小费用增广后找到的最小流量是经过的所有路的最小流量,不一定是可以到达汇点的最小流量。。但是如果流量都为1的话。。那只要边没有全部流过,那肯定最小流量会是1.而如果已经全部流过的话。。那也没意...
分类:
其他好文 时间:
2014-08-06 02:03:00
阅读次数:
234
题目地址:NEU 1458
跟杭电上的那两个方格取数不太一样。。这个可以重复,但是取和的时候只能加一次。建图思路基本一会就出来。同样的拆点,只不过这题需要再拆个边,其中一条费用0,另一条费用为那个点处的值。流量都限制为1.然后剩下的都跟杭电上的那两个差不多了。因为把数组开小了WA了好几发。。(我前面居然还专门检查了一下数组大小,居然当时还认为没开小。。。对自己无语。。)
代码如下:
#inc...
分类:
其他好文 时间:
2014-08-03 23:15:56
阅读次数:
304
题意: 给一个矩阵,给出约束:i(0
开始一见,就直接建了二分图,但是,发现这是有下界无上界最小费用流问题,肿么办。。。问题转化:所谓正难则反!现在某行/列要至少取k个,总和最小,不就是那行/列最多留下K个,使留下的和最大?其实也就是最多取k个,使值最大,转化为下界为0,有上界的最大费用问题(普通问题)。“取”,“不取”,本质都是一样的,正是“无为”的思想!取,则最小;不取,最大。道...
分类:
其他好文 时间:
2014-08-03 10:15:55
阅读次数:
265
题目链接:点击打开链接
Matrix sum
Time Limit: 8000/4000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others)
SubmitStatisticNext
Problem
Problem Description
sweet和zero在玩矩阵游戏,sweet画了一个N * ...
分类:
其他好文 时间:
2014-08-03 01:47:45
阅读次数:
432
一周总结费用流:BZOJ1927有n个点保证每个点都走一次,且走完n个点的最小花费。分点,保证每个点只走一次。BZOJ2324有n个点k个人保证在走完前i-1个点时,才能走第i个点,求遍历n个点的最小花费。此题建边时要用floyd求出前...
分类:
其他好文 时间:
2014-08-02 15:27:33
阅读次数:
274
题(自)目(己)错(英)综(语)复(太)杂(差),关系理了半小时+翻译才看明白,看明白之后,直接建图,费用流击杀。/简单题。
2A:有的地方,可用互通的要建双向边!
#include
#include
#include
#include
#include
using namespace std;
const int maxv=400;
const int maxe=400*400*2+800;...
分类:
其他好文 时间:
2014-08-02 13:00:03
阅读次数:
204
题目链接:点击打开链接
思路:
我们首先假设这个图都是全0的
用n个点代表行,m个点代表列
用源点向行连一个值x 表示每行1的个数,向列连一个y表示每列y个1
则若行i和列j之间流过一个流量就表示 (i,j) 点填了1
那么若原来图中(i,j)点为0 则花费就是1
若原图中(i,j)点是1,则花费是-1
如此枚举x跑个费用流就好了
==居然把我多年的白书费用流坑掉了。。。
zk...
分类:
其他好文 时间:
2014-08-01 23:15:42
阅读次数:
313