拆点费用流---------------------------------------------------------------------#include#include#include#include#include#include#define rep(i,n) for(int i=0...
分类:
其他好文 时间:
2015-04-03 20:55:52
阅读次数:
123
解题思路:
二分图带权匹配,卡费用流,用KM算法。
#include
#include
#include
#include
using namespace std;
/* KM算法
* 复杂度O(nx*nx*ny)
* 求最大权匹配
* 若求最小权匹配,可将权值取相反数,结果取相反数
* 点的编号从0开始
*/
const int MAXN = 310;
co...
分类:
编程语言 时间:
2015-04-02 13:31:00
阅读次数:
188
题意:
给n给开区间(ai,bi)及相应权值wi,现在要选一些区间,要求任一点不能被超过k个区间覆盖,目标是最大化总的权重。
分析:
转化为求最大费用流,改改最小费用流的模板就好。
代码:
//poj 3680
//sep9
#include
#include
#include
#include
using namespace std;
const int maxN=2048;...
分类:
其他好文 时间:
2015-04-01 22:00:10
阅读次数:
158
poj 2135 费用流
题意:
给出一个有n个点m条边的图,求从点1到点n再从点n回到点1的最短路径,要求每条路最多只能经过一次。
限制:
1
思路:
费用流
建图:
超级源点0,连边:0->1,流量为2,费用为0;
超级汇点n+1,连边:n->n+1,流量为2,费用为0;
其他和图的边一样,建双向边,流量为1,费用为边权。
/*poj 2135
题意:
...
分类:
其他好文 时间:
2015-03-31 09:18:45
阅读次数:
193
题解:
我依然只会做,不会证。
如果初学者,可以一览,想深究,请移步。
After all,i am a Juruo at present.After\ all, i\ am\ a\ Juruo\ at\ present.
~~~~~首先我们可以有基础的线性规划:每连续nn点最多选kk个。
转换成数学模型:
(其中 aa 数组表示选(1)与不选(0),而 tt 数组则是辅助...
分类:
其他好文 时间:
2015-03-30 14:42:00
阅读次数:
383
题目大意:给定一个长度为n的序列,要求选一些数,使得任意一个长度为m个区间中最多选k个数,求最大的和
费用流直接跑就是了
把这个序列用流量为k费用为0的边连成一条直线 然后第i个点向第i+m个点连一条费用为a[i]流量为1的边
跑最大费用最大流即可
卡单纯型差评。。。。
#include
#include
#include
#include
#define M 1010
#def...
分类:
其他好文 时间:
2015-03-29 15:08:10
阅读次数:
183
题目大意是说有一个B矩阵,现在A是一个空矩阵(每个元素都为0),每次操作可以将A矩阵相邻的两个元素同时+1,但是有个要求就是A矩阵的每个元素都不可以超过K,求这个的最小值解题思路是这样的,新建起点与奇点(i != j)连K条边,第i条边的权值为(i - B)^2 - (i - 1 - B)^2 = ...
分类:
其他好文 时间:
2015-03-28 23:02:52
阅读次数:
202
前言:
本来以为这种双限制流量的方法很通用很好用,所以没有去写那个一个点拆成俩的奇葩做法……但是后来我发现,这种一个点拆成三个的方法没有任何意义,它只是针对了这道题的特殊性质噗。好像并不能拓展。
题解:
首先图转化成源点往开始图的黑点(当然你要用白点也不是不行)流流量,最终从结束图的黑点流向汇点。这个应该都能想到。
然后关键是怎么在流过一次后同时限制两个点。
这也是我所想知道的……可是,...
分类:
其他好文 时间:
2015-03-28 17:19:51
阅读次数:
141
描述
一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子。每个元素有一个坐标(行,列),其中左上角元素坐标为(0,0)。给定一个起始位置(r,c)
,你可以沿着箭头防线在格子间行走。即如果(r,c)是一个左箭头,那么走到(r,c-1);如果是右箭头那么走到(r,c+1);如果是上箭头那么走到(r-1,c);如果是下箭头那么走到(r+1,c);每一行和每一列都是循环的,即如果走出边界,...
分类:
其他好文 时间:
2015-03-22 09:21:01
阅读次数:
146
裸的费用流啊。。。建图:对于一个点p拆成两个p1和p2,S向p1连边,流量为1,费用为0;p2向T连边流量为1,费用为0然后i1向a2到b2分别连边,不妨设i1向p2连边,流量为1,费用为|i - p| * ki跑一下费用流,如果流量不为n,NIE!然后答案就是费用之和。。。 1 /*******....
分类:
其他好文 时间:
2015-03-22 00:08:48
阅读次数:
226