首先来看一下题。。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. Gradle依赖项学习总结,dependencies、transitive、force、exclude的使用与依赖冲突解决

    http://www.paincker.com/gradle-dependencies https://docs.gradle.org/current/userguide/dependency_man ...

  2. RHEL7 单独安装图形 X11

    RHEL7 默认是最小化安装(Minimal Install),没有图形界面, 我们应该选择Server with GUI.若已错过此步骤,我们采用以下方式补充安装GUI界面.

  3. 全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866 - 全文

    [导读] XC866是新型8位微控制器系列(XC800)的第一代系列产品,集成高性能8051核.片内FLASH及功能强大的外设集.此外,XC800系列产品内部集成的片 内振荡器和支持3.3V或5.0V ...

  4. 公司搬家,拿了个费机器,没root密码,又忘了怎么搞了,

    grub中找到ro->rw single init=/bin/bash passwd root

  5. 日志文件 统计 网站PV IP

    1. 安装rrdtool yum install rrdtool 2. 创建 rrdtool 数据库 rrdtool create /opt/local/rrdtool/jicki.rrd -s 30 ...

  6. mustache.js使用基本(二)sections

    作者:zccst 本文记录基本使用二,主要讲sections. {{#person}} {{/person}} 1,当person是null, undefined, false, 0, NaN, &q ...

  7. MySQL master/slave 模式

    1 .复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重 ...

  8. PHPCMS快速建站系列之搜索功能

    默认模板的搜索功能代码 <div class="bd"> <form action="{APP_PATH}index.php" method= ...

  9. iOS开发中在UIWebView中添加Gif动态图

    开发是一件很有趣的事,偶尔在程序中添加一些小东西,会给你的应用增色不少.比如,当你的某些功能暂时还不准备上线时,可以先一个放展示Gif动态图的UIWebView上去,既可以告诉用户APP以后会有的功能 ...

  10. jquey插件开发

    1.概述 jquery插件开发的主要方法有三种: 1.通过$.extend()来扩展jQuery,即在jQuery命名空间下扩展属性,直接在$对象下调用,不需要再dom下调用,也无法在dom元素下调用 ...