题目大意:有一些商品需要被制造,有一些员工,每一个员工会做一些物品,然而这些员工做物品越多,他们的愤怒值越大,这满足一个分段函数。给出哪些员工可以做哪些东西,给出这些分段函数,求最小的愤怒值以满足需要被制造的商品。
思路:费用流。我写的朴素费用流好像很慢,有时间学一学费用流的多路增广。
由于题目中满足那些分段函数是满足单调递增的性质的,所以就可以如下建图:
S->每个人,费用0,流量...
分类:
其他好文 时间:
2014-10-09 19:45:57
阅读次数:
191
http://poj.org/problem?id=2195#include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;struct node1//记录h或者m的坐标{...
分类:
其他好文 时间:
2014-10-08 13:32:55
阅读次数:
194
网络流主要包括:1、最大流2、费用流3、有上下界的网络流网络流的基本技巧:1、多个源点和汇点的情况。建立超级源点和超级汇点。2、顶点有容量限制。拆成两个点,此两点连边,容量为原来的点被限制的容量。3、最大费用转为最小费用。变负数,最后变回来。一、最大流最大流算法的思想是不断地找S到T的增广路。算法的...
分类:
其他好文 时间:
2014-10-06 18:12:30
阅读次数:
135
暂时不会写费用流,先用双线动规写一遍,下午再来写费用流解法= =解法1:双线动规 首先我们不难看出,由于纸条回来时不能与去时的路径重叠,“一来一回”和“从左上角分两条路走向右下角”这两个模型是等价的。于是我们可以把两条路到达的端点同时作为状态保存下来(dp[x1][y1][x2][y2])。又因为....
分类:
其他好文 时间:
2014-10-06 13:33:30
阅读次数:
226
滚动建图,最大费用流(每次只有就10个点的二分图)。复杂度,m/n*(n^2)(n
#include //78ms
#include
#include
using namespace std;
const double inf =0x3f3f3f3f;
const int maxv=50,maxe=500;
int head[maxv];double e[maxe][4];int nume=0...
分类:
其他好文 时间:
2014-10-03 17:54:17
阅读次数:
259
这题问题就是当前时刻到底选择哪门课程,易知选择是和分数有关的,并且是一个变化的权值,所以可以用拆点的方式,把从基础分到100分都拆成点,但若这样拆点的话,跑费用流时就必须保证顺序,这样就麻烦了。。观察公式,发现同一门课,分数越高,权值是越低的,所以这是一个单调的,这样的话就可以对每一个分数建一条边,费用流会一条一条的跑。
注意将课程放在X集
#include
#include
#include...
分类:
其他好文 时间:
2014-10-02 16:18:13
阅读次数:
126
概要:这货很强大啊。isap和dinic都算很快的算法,目前貌似卡不了?spfa在费用流中找增广路。上下界的网络流可以用分离必要弧来做。应用:解决许多多约束最优化的问题。技巧及注意:网络流在于建模,但是首先得有个基础。上下界网络流:整体思想就是分离下界,将原边连成上界-下界,终点的界和+=这个下界,...
分类:
其他好文 时间:
2014-09-30 20:38:20
阅读次数:
158
题目地址:HDU 2448
求n次最短路,将n艘船到各港口的最短路求出来,然后用最短路当费用,跑一次费用流。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
cons...
分类:
其他好文 时间:
2014-09-30 12:11:59
阅读次数:
223
最小费用最大流.....
建图:
源点 到 每栋楼 连容量为B,花费为0 的边
每个避难所 到 汇点 连容量为C,花费为0 的边
楼 到 避难所 连容量INF,花费 曼哈顿距离+1 的边
跑费用流后比较.... POJ 2175时限只有一秒.....会超时
Evacuation Plan
Time Limit: 10000MS
...
分类:
其他好文 时间:
2014-09-26 15:05:48
阅读次数:
330
UVA 1317 - Concert Hall Scheduling
题目链接
题意:现在有两个音乐厅,有一些人要租用,每次租一个区间的时间,给w钱,要求一个租的方案使得总收入最大,问总收入
思路:区间k覆盖问题,一个左闭右开区间可以建一条边,容量为1,代价为-w(因为要求最大),然后区间每个[i, i + 1]建一条边,容量2,代价0,然后跑一下费用流即可
代码:
...
分类:
其他好文 时间:
2014-09-25 17:37:19
阅读次数:
197