首先来看一下题。。http://www.lydsy.com/JudgeOnline/problem.php?id=1061

1061: [Noi2008]志愿者招募

Description

  申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难
题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要
Ai 个人。 布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用
是每人Ci 元。新官上任三把火,为了出色地完成自己的工作,布布希望用尽量少的费用招募足够的志愿者,但这
并不是他的特长!于是布布找到了你,希望你帮他设计一种最优的招募方案。

Input

  第一行包含两个整数N, M,表示完成项目的天数和可以招募的志愿者的种类。 接下来的一行中包含N 个非负
整数,表示每天至少需要的志愿者人数。 接下来的M 行中每行包含三个整数Si, Ti, Ci,含义如上文所述。为了
方便起见,我们可以认为每类志愿者的数量都是无限多的。

Output

  仅包含一个整数,表示你所设计的最优方案的总费用。

Sample Input

3 3

2 3 4

1 2 2

2 3 5

3 3 2

Sample Output

14

HINT

1 ≤ N ≤ 1000,1 ≤ M ≤ 10000,题目中其他所涉及的数据均 不超过2^31-1。

简单的叙述一下题意:给定N天内每一天所需要的人数,以及M类人,每类人有三个属性(开始时间,结束时间,费用),每个人只能在其属性范围内工作,求最小的花费(每个人只能用一次)。

这么复述一遍后应该就很容易想到线性规划了吧。。

设xi表示第i个人用了几个,ci表示第i个人的费用属性,pi表示第i天所需要的人的数量。

那么就可以列出以下线性约束不等式组:

Minimize:Σcixi  (1≤i≤n)

  s.t.  Σxi≥pi   (第i个人可以在第i天工作)

(额貌似有点抽象。。那就举个例子吧。。)

看一下样例。。

即:

  一共有三天,第一天需要2人,第二天需要3人,第三天需要4人。

  一共有三类人,按照每类人的属性为(开始时间,结束时间,费用)来表示,那么就是(1,2,2),(2,3,5),(3,3,2)。

然后就可以写了。

Minimize:2x1+5x2+2x3

  s.t.  x1≥2

         x1+5x2≥3

         5x2+x3≥4

那么化简成松弛型后就是这样了:

Zmin=2x1+5x2+2x3

p1=x1-y1=2

p2=x1+5x2-y2=3

p3=5x2+x3-y3=4

但是如果要弄成网络流还有很大出入的,毕竟网络流的线性规划部分模型是这样的:

Σ流出-Σ流入=0

也就是说每一个变量在松弛后的等式中要出现一正一负!然后就可以把每一个等式当做一个点,系数互为相反数的一对等式连边,然后去跑网络流就行了。

但是上面那个式子怎么搞呢?要不。。差分吧。。

很容易发现列完式子后每一个x都是正的,而且xi是按照一段区间的形式出现的,如果要只保留一正一负的话就可以用差分搞咯,也就是说下面的式子减去上面的式子,然后就可以把相同的一段xi全部都给消掉了。。然后看一下边界处:首先是xs,即最小的那个xi变量,把它与它上面那个式子减一下后xs就成了负的,然后我们考虑xt+1也就是最后一个xi的下一个式子,这个式子里是不包含xi的,那么与上面那个式子相减后就会出现一个负的xi然后就可以发现每一个xi都是一正一负出现了,然后就满足了流量平衡,直接套网络流就ok了。。。

然而你们以为网络流会更快么?不不不。。。bzoj上跑的结果是线性规划比网络流快四倍。。。

以上就是全部内容了。。

然而在信息学竞赛中,虽然说线性规划比较直接。。但是空间简直伤不起啊。。据说有一种关于空间的优化叫做什么矩阵

不过网络流的建模的确很玄学。。大概遇到网络流的题目就要炸了。。。

从[NOI2008志愿者招募]浅谈线性规划在网络流构图上的巧用的更多相关文章

  1. 线性规划||网络流(费用流):COGS 288. [NOI2008] 志愿者招募

    [NOI2008] 志愿者招募 输入文件:employee.in   输出文件:employee.out   简单对比 时间限制:2 s   内存限制:512 MB [问题描述] 申奥成功后,布布经过 ...

  2. 网络流解线性规划问题 BZOJ1061: [Noi2008]志愿者招募

    线性规划定义: 在给定有限的资源和竞争约束情况下,很多问题都可以表述为最大化或最小化某个目标.如果可以把目标指定为某些变量的线性函数,而且如果可以将资源约束指定为这些变量的等式或不等式,则得到了一个线 ...

  3. 【BZOJ 1061】 1061: [Noi2008]志愿者招募 (线性规划与网络流)**

    1061: [Noi2008]志愿者招募 Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短 ...

  4. BZOJ 1061: [Noi2008]志愿者招募

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 4064  Solved: 2476[Submit][Stat ...

  5. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3975  Solved: 2421[Submit][Stat ...

  6. [BZOJ1061][Noi2008]志愿者招募

    [BZOJ1061][Noi2008]志愿者招募 试题描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短期志愿 ...

  7. bzoj1061: [Noi2008]志愿者招募

    线性规划与费用流.http://www.cnblogs.com/iiyiyi/p/5616080.html.数组范围开错了!!!然后2.31-1=0x7fffffff!=0x7f7f7f7f. 开始以 ...

  8. 【费用流】BZOJ1061: [Noi2008]志愿者招募(这题超好)

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 5291  Solved: 3173[Submit][Stat ...

  9. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记看另一篇吧】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3975  Solved: 2421[Submit][Stat ...

随机推荐

  1. jQuery中的attr()和prop()使用

    总结:除了checked.seleted这样的属性推荐用prop()外,其他的随意都可以. 原因如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  2. POJ 2728 Desert King 最优比率生成树

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 20978   Accepted: 5898 [Des ...

  3. [iOS]C语言技术视频-11-指针变量练习一(交换值)

    下载地址: 链接: http://pan.baidu.com/s/1pJIcGm3 密码: s83p

  4. 实战3--项目开始--准备:::资源分类, 日志系统, 写BaseDao

     项目资源分类: 1.   package: base, dao, dao.impl, domain, service, service.impl, util, view.action 2.   co ...

  5. openstack controller ha测试环境搭建记录(十五)——创建实例

    # source demo-openrc.sh # ssh-keygenGenerating public/private rsa key pair.Enter file in which to sa ...

  6. UVA 11149 Power of Matrix

    矩阵快速幂. 读入A矩阵之后,马上对A矩阵每一个元素%10,否则会WA..... #include<cstdio> #include<cstring> #include< ...

  7. CodeForces 629C Famil Door and Brackets

    DP. 具体做法:dp[i][j]表示长度为 i 的括号串,前缀和(左括号表示1,右括号表示-1)为 j 的有几种. 状态转移很容易得到:dp[i][j]=dp[i - 1][j + 1]+dp[i ...

  8. Cdoefroces #354

    A题 题意:给定一些数,然后求一次交换以后最大的数和最小的数之间的最大距离 分析:找到最大数和最小数的位置,然后判断是把位置大的移到最后还是把位置小的移到开始位置即可 #include <ios ...

  9. 初步了解php,实现注册及登录

    直接上图(数据库是用wamp实现的) 注册页 html 及 php 代码 登陆页 html 及 php 代码

  10. Sublime Text 快捷键--持续更新

    快捷键 功能 说明 ctrl+D 选取一个单词连续按组合键会选择页面所有相同的这个单词   ctrl+Z 撤销上一个操作   ctrl+Y 恢复上一个操作   ctrl+shift+F 底部打开搜索全 ...