BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
1061: [Noi2008]志愿者招募
Time Limit: 20 Sec Memory Limit: 162 MB
Submit: 4813 Solved: 2877
[Submit][Status][Discuss]
Description
Input
Output
仅包含一个整数,表示你所设计的最优方案的总费用。
Sample Input
2 3 4
1 2 2
2 3 5
3 3 2
Sample Output
HINT
1 ≤ N ≤ 1000,1 ≤ M ≤ 10000,题目中其他所涉及的数据均 不超过2^31-1。
Source
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1061
分析:单纯形裸题,也就是裸题,只能是裸题QAQ!
下面给出AC代码:
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- inline int read()
- {
- int x=,f=;
- char ch=getchar();
- while(ch<''||ch>'')
- {
- if(ch=='-')
- f=-;
- ch=getchar();
- }
- while(ch>=''&&ch<='')
- {
- x=x*+ch-'';
- ch=getchar();
- }
- return x*f;
- }
- const int M=;
- const int N=;
- const int INF=1e9;
- const double eps=1e-;
- int n,m;
- double a[M][N],b[M],c[N],v;
- void pivot(int l,int e)///矩阵的转置
- {
- b[l]/=a[l][e];
- for(int j=;j<=n;j++)
- {
- if(j!=e)
- a[l][j]/=a[l][e];
- }
- a[l][e]=/a[l][e];
- for(int i=;i<=m;i++)
- {
- if(i!=l&&fabs(a[i][e])>)
- {
- b[i]-=a[i][e]*b[l];
- for(int j=;j<=n;j++)
- {
- if(j!=e)
- a[i][j]-=a[i][e]*a[l][j];
- }
- a[i][e]=-a[i][e]*a[l][e];
- }
- }
- v+=c[e]*b[l];
- for(int j=;j<=n;j++)
- {
- if(j!=e)
- {
- c[j]-=c[e]*a[l][j];
- }
- }
- c[e]=-c[e]*a[l][e];
- }
- double simplex()
- {
- while()
- {
- int e=,l=;
- for(e=;e<=n;e++)
- {
- if(c[e]>eps)
- break;
- }
- if(e==n+)
- return v;
- double mn=INF;
- for(int i=;i<=m;i++)
- {
- if(a[i][e]>eps&&mn>b[i]/a[i][e])
- {
- mn=b[i]/a[i][e];
- l=i;
- }
- }
- if(mn==INF)
- return INF;
- pivot(l,e);
- }
- }
- int main()
- {
- n=read();
- m=read();
- for(int i=;i<=n;i++)
- c[i]=read();
- for(int i=;i<=m;i++)
- {
- int s=read();
- int t=read();
- for(int j=s;j<=t;j++)
- {
- a[i][j]=;
- }
- b[i]=read();
- }
- printf("%d\n",(int)(simplex()+0.5));
- return ;
- }
BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】的更多相关文章
- BZOJ 1061: [Noi2008]志愿者招募 费用流
1061: [Noi2008]志愿者招募 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1061 Description 申奥成功后,布布 ...
- BZOJ 1061: [Noi2008]志愿者招募
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 4064 Solved: 2476[Submit][Stat ...
- BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记】
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 3975 Solved: 2421[Submit][Stat ...
- BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记看另一篇吧】
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 3975 Solved: 2421[Submit][Stat ...
- BZOJ.1061.[NOI2008]志愿者招募(线性规划 对偶原理 单纯形 / 费用流SPFA)
题目链接 线性规划 用\(A_{ij}=0/1\)表示第\(i\)天\(j\)类志愿者能否被招募,\(x_i\)为\(i\)类志愿者招募了多少人,\(need_i\)表示第\(i\)天需要多少人,\( ...
- 【刷题】BZOJ 1061 [Noi2008]志愿者招募
Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完 ...
- BZOJ 1061: [Noi2008]志愿者招募(线性规划与网络流)
http://www.lydsy.com/JudgeOnline/problem.php?id=1061 题意: 思路: 直接放上大神的建模过程!!!(https://www.byvoid.com/z ...
- BZOJ 1061 [Noi2008]志愿者招募(费用流)
题目描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完成,其中第i ...
- bzoj 1061 [Noi2008]志愿者招募(数学模型,MCMF)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1061 [题意] 雇人满足每天至少需要的人数. [思路一] Byvoid的题解 clic ...
随机推荐
- boost::assign(标准容器填充库)
boost::assign通过对"+="和","的重载非常方便的填充标准容器(std::vector,std::set,std::list,std::map), ...
- 瞎j8封装第二版之数据层的封装
看了以前写的代码,对就是下面这个 手把手封装数据层之DataUtil数据库操作的封装 觉得以前写的代码好烂啊!!!,重新理了一下思路,写得更规范和简练,应该效率也会高很多,用了一下下午写的连接池(半废 ...
- JPA的基本使用
前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 l ...
- Spark源码剖析(六):Worker原理与源码剖析
上篇文章我们剖析了Master的原理和源码,知道了当Master使用资源分配算法将资源分配完成后,就会给对应的Worker发送启动Driver或者Executor的消息,那么Worker收到这些消息后 ...
- 使用JavaScript将图片保存至本地
在最近的开发当中,我们需要为img标签以及canvas动态绘制的图像提供下载功能,下面是经过探索后我们得出的结果. 一.Canvas 版本 // 下载Canvas元素的图片 function down ...
- Jmeter非GUI模式运行
非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter -n -t 脚本文件路径 -l 结果输出文件路径 -j 日志文 ...
- windows 下的python 安装pycrypto
一般在官方网站下载pycrypto: https://www.dlitz.net/software/pycrypto/ 然后使用命令就可以安装成功了: python setup.py build ...
- Javascript高级程序设计笔记 <第五章> 引用类型
一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...
- Android动画(二)-属性动画
我们在上一篇博客中,讨论了视图动画与帧动画.那么这节课则要讨论更复杂,更强大的Property animation(属性动画). 视图动画使用简单,但是功能也简单.(只有那四种功能).并且也不改变Vi ...
- class, classloder, dex 详解
class与dex文件 什么是class文件 class文件是一种能够被JVM识别,加载并且执行的文件格式. class文件的作用 class文件的作用是记录一个类文件的所有信息. 例如记住了当前类的 ...