[管理运筹学]线性规划&单纯形法的各种姿势(题目:[NOI2008]志愿者招募)

Csdn公式有点怪,转身CmdMarkdown(现在好了)

题目描述

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

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

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

输入样例#1:
3 3
2 3 4
1 2 2
2 3 5
3 3 2
输出样例#1:
14

说明
1 ≤ N ≤ 1000 1 ≤ N ≤ 1000 1N1000 1 ≤ M ≤ 10000 1 ≤ M ≤ 10000 1M10000,题目中其他所涉及的数据均不超过 2 31 − 1 2^{31}-1 2311

分析与建模

设第 i i i 天需要 x i x_i xi 个志愿者,记 a i j a_{ij} aij 为第 i i i 天第 j j j 个志愿者是否能工作。
题目要求总费用最低,即求: M i n   z = ∑ i = 1 n C i ∗ x i Min \, z = \sum_{i=1}^{n}{C_i * x_i} Minz=i=1nCixi
它们需要满足要求:

{ a 11 x 1 + a 12 x 2 + a 13 x 3 . . . + a 1 m x m ≥ A 1 a 21 x 1 + a 22 x 2 + a 23 x 3 . . . + a 2 m x m ≥ A 2 . . . a n 1 x 1 + a n 2 x 2 + a n 3 x 3 . . . + a n m x m ≥ A n x 1 , x 2 , x 3 . . . x m ≥ 0 \begin{cases} a_{11}x_1+a_{12}x_2+a_{13}x_3...+a_{1m}x_m \geq A_1 \\ a_{21}x_1+a_{22}x_2+a_{23}x_3...+a_{2m}x_m \geq A_2 \\ ...\\ a_{n1}x_1+a_{n2}x_2+a_{n3}x_3...+a_{nm}x_m \geq A_n \\ x_1,x_2,x_3 ... x_m \geq 0\\ \end{cases} a11x1+a12x2+a13x3...+a1mxmA1a21x1+a22x2+a23x3...+a2mxmA2...an1x1+an2x2+an3x3...+anmxmAnx1,x2,x3...xm0

这明显是一个的线性规划问题,但它不是标准形式,需要一些改造。

方法一 转化为对偶问题

观察它的对偶问题: M a x   w = ∑ i = 1 m A i ∗ y i Max \, w = \sum_{i=1}^{m}A_i*y_i Maxw=i=1mAiyi
b i j = a j i b_{ij} = a_{ji} bij=aji, 为第 i i i 个志愿者第 j j j 天是否能工作,新的约束条件为:
{ b 11 y 1 + b 12 y 2 + b 13 y 3 . . . + b 1 n y n ≤ C 1 b 21 y 1 + b 22 y 2 + b 23 y 3 . . . + b 2 n y n ≤ C 2 . . . b m 1 y 1 + b m 2 y 2 + b m 3 y 3 . . . + b m n y n ≤ C n y 1 , y 2 , y 3 . . . y n ≥ 0 \begin{cases} b_{11}y_1+b_{12}y_2+b_{13}y_3...+b_{1n}y_n \leq C_1 \\ b_{21}y_1+b_{22}y_2+b_{23}y_3...+b_{2n}y_n \leq C_2 \\ ...\\ b_{m1}y_1+b_{m2}y_2+b_{m3}y_3...+b_{mn}y_n \leq C_n \\ y_1,y_2,y_3 ... y_n \geq 0\\ \end{cases} b11

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值