推荐一篇论文:http://wenku.baidu.com/view/ce5784754a7302768f99391d

我们设xi为第i个志愿者的招募次数,以样例为例,则不难列出如下的线性规划方程:

min{2x1+5x2+2x3}

x1+0+0>=2

x1+x2+0>=3

0+x2+x3>=4

那么,根据论文,这个方程等价于:

max{2x1+3x2+4x3}

x1+x2+0<=2

0+x2+x3<=5

0+0+x3<=2

我们发现,这是一个线性规划方程的基本形式,基本解为{0,0,0}

然后套模板就可以了。

#include <cstdio>

const int N=,M=;
int n,m,x,y,p,id;
double ans,c[N],b[M],a[M][N]; void pvt(int id,int p) {
a[id][p]=/a[id][p],b[id]*=a[id][p];
for(int i=;i<=n;i++) if(i^p) a[id][i]*=a[id][p];
for(int i=;i<=m;i++) if((i^id)&&a[i][p]) {
for(int j=;j<=n;j++) if(j^p) a[i][j]-=a[i][p]*a[id][j];
b[i]-=a[i][p]*b[id],a[i][p]*=-a[id][p];
}
for(int i=;i<=n;i++) if(i^p) c[i]-=c[p]*a[id][i];
ans+=c[p]*b[id],c[p]*=-a[id][p];
}
double sol() {
while() {
for(p=;p<=n;p++) if(c[p]>) break;
if(p==n+) return ans;
double fz=0x3f3f3f3f;
for(int i=;i<=m;i++) if(a[i][p]>&&b[i]/a[i][p]<fz) fz=b[i]/a[i][p],id=i;
if(fz==0x3f3f3f3f) return fz;
pvt(id,p);
}
} int main() {
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) scanf("%lf",&c[i]);
for(int i=;i<=m;i++) {
scanf("%d%d%lf",&x,&y,&b[i]);
for(int j=x;j<=y;j++) a[i][j]=;
}
printf("%.0f",sol());
return ;
}

单纯形求解线性规划(BZOJ1061)的更多相关文章

  1. matlab学习笔记之求解线性规划问题和二次型问题

    一.线性规划问题 已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题. 1.求解方式:用linprog函数求解 2.linprog函数使用形式: x=linprog(f,A,b)  ...

  2. matlab 求解线性规划问题

    线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为: minf(x):待最小化的目标函数(如果问题本 ...

  3. Python求解线性规划——PuLP使用教程

    简洁是智慧的灵魂,冗长是肤浅的藻饰.--莎士比亚<哈姆雷特> 1 PuLP 库的安装 如果您使用的是 Anaconda[1] 的话(事实上我也更推荐这样做),需要先激活你想要安装的虚拟环境 ...

  4. Lingo求解线性规划案例4——下料问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 造纸厂接到定单,所需卷纸的宽度和长度如表 卷纸的宽度 长度 5 7 9 10000 30000 20000 工 ...

  5. Lingo求解线性规划案例3——混料问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/  某糖果厂用原料A.B和C按不向比率混合加工而成甲.乙.丙三种糖果(假设混合加工中不损耗原料).原料A.B.C ...

  6. Lingo求解线性规划案例1——生产计划问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 说明: Lingo版本:                            某工厂明年根据合同,每个季度末 ...

  7. Lingo求解线性规划案例2——多阶段投资问题

     凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 某公司现有资金30万元可用于投资,5年内有下列方案可供采纳:   1号方案:在年初投资1元,2年后可收回1. ...

  8. 用Lingo求解线性规划问题

    第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...

  9. MATLAB求解线性规划

随机推荐

  1. C简单实现双向链表

    <pre name="code" class="cpp">//链表结构 typedef struct DulNode { DataType data ...

  2. Trie树(转)

    原文http://www.cnblogs.com/TheRoadToTheGold/p/6290732.html 一.引入 字典是干啥的?查找字的. 字典树自然也是起查找作用的.查找的是啥?单词. 看 ...

  3. codeforces 830 B Cards Sorting

    B. Cards Sorting  http://codeforces.com/problemset/problem/830/B Vasily has a deck of cards consisti ...

  4. 使用Github pages+jekyll搭建自己的博客(windows版)

    最近突发奇想,想试试GitHub pages来搭建博客.网上一搜一大堆,嗯...看来还是挺简单的...于是自己撸起袖子干...... 结果对于我这种GitHub注册过,git 没用过,ruby.jek ...

  5. nyoj水池数目

    水池数目 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...

  6. JAVA_SE基础——72.自定义线程

    进程 :  正在执行的程序称作为一个进程.  进程负责了内存空间的划分.   问题: windows号称是多任务的操作系统,那么windows是同时运行多个应用程序吗?从宏观的角度: windows确 ...

  7. 释义Oracle 11r2中并行执行相关参数

    因最近对现场某些服务器进行诊断和调整,用到了这类参数,因此对这类参数做了详尽的查阅和研究,现将该类参数释义如下,以方便同行和自己参考,禁止转载: 1.PARALLEL_ADAPTIVE_MULTI_U ...

  8. 使用 BenchmarkDotnet 测试代码性能

    先来点题外话,清明节前把工作辞了(去 tm 的垃圾团队,各种拉帮结派.勾心斗角).这次找工作就得慢慢找了,不能急了,希望能找到个好团队,好岗位吧.顺便这段时间也算是比较闲,也能学习一下和填掉手上的坑. ...

  9. SpringCloud应用入库后乱码问题

    一.现象 1.请求 2.入库后 二.解决过程 1.配置application.properties 2.代码配置 3.数据库(关键!!) 3.请求 三.验证过程 1.win10 - 本地验证通过 2. ...

  10. Angular 学习笔记 ( CDK - Accessibility )

    @angular/ckd 是 ng 对于 ui 组建的基础架构. 是由 material 团队开发与维护的, 之所以会有 cdk 看样子是因为在开发 material 的时候随便抽象一个层次出来给大家 ...