bzoj1061
来源:互联网 发布:遗传算法参考书 编辑:程序博客网 时间:2024/06/05 04:39
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
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。
Source
代码模板参考:http://blog.csdn.net/braketbn/article/details/50783719
这题可以用网络流做 也可以用线性规划做
讲一讲线性规划单纯性法:
对于以下式子
∑(j=1 to n) cof[i][j]*X[N[j]]<=b[i] X[j]>=0
对于第i个式子新增变量X[B[i]]变为
X[B[i]]+∑(j=1 to n) cof[i][j]*X[N[j]]=b[i]
X[]>=0
然后从N[j]中选出目标函数系数>0且编号最小的
设为pos
则一定有X[pos]<=b[i]/cof[i][pos] 找出最紧的松弛条件 设为第id个
则把X[pos]用含X[B[id]]的式子表示出来 带入每个式子 同时将id,pos互换
边界条件就是目标函数的所有系数<0 则答案就是剩下的常数
具体可以参考http://wenku.baidu.com/view/ce5784754a7302768f99391d的例子
对于本题 用对偶的办法 转化问题
对于样例我们有式子
Min 2x[1]+5x[2]+2x[3]
x[1] >=2
x[1]+x[2] >=3
x[2]+x[3]>=4
那么对偶过来就变成
Max 2x[1]+3x[2]+4x[3]
x[1]+x[2] <=2
x[2]+x[3]<=5
x[3]<=2
计算即可
http://blog.csdn.net/wxh010910/article/details/53351853
0 0
- bzoj1061
- bzoj1061--线性规划
- [BZOJ1061][Noi2008]志愿者招募
- bzoj1061【NOI2008】志愿者招募
- 【NOI2008】【BZOJ1061】志愿者招募
- bzoj1061: [Noi2008]志愿者招募
- 【NOI2008】BZOJ1061志愿者招募
- [bzoj1061][NOI2008]志愿者招募
- BZOJ1061: [Noi2008]志愿者招募
- BZOJ1061: [Noi2008]志愿者招募
- 【bzoj1061】[Noi2008]志愿者招募
- [BZOJ1061]志愿者招募
- bzoj1061: [Noi2008]志愿者招募
- bzoj1061: [Noi2008]志愿者招募
- 【NOI2008】bzoj1061 志愿者招募
- bzoj1061 [ NOI2008 ] --线性规划
- BZOJ1061 费用流
- [bzoj1061][Noi2008]志愿者招募
- 在MFC上显示mat格式图片
- spring 源码探索--bean加载准备阶段
- 《算法》之惊鸿一瞥
- 数据结构——二叉树的直径
- JavaScript
- bzoj1061
- 空闲时间学一个Linux命令(8)—— cp 命令
- SpringMVC中文件上传和json数据配置
- Usaco 4.1.1 Beef McNuggets——当Gcd(p,q)=1时,最大无法表示成px+qy(x,y>=0)的数是pq-p-q
- ARM和X86架构之间区别以及性能比较杂谈
- java网络编程初步理解
- AUPE——Chapter 11:线程
- Android系统Download模块研究
- C++简介