bzoj1061题解
【解题思路】
设类型i的志愿者,即第Si天~第Ti天工作的志愿者,共招募xi个,于是有不等式组Σxj≥Ai(Sj≤i≤Tj)。
这样,题目就变成了求一组满足一次不等式组的xi,使ΣCixi最小,即标准的线性规划形式。
本人比较懒。。并不想建图跑费用流之类的。。于是写了单纯形。。复杂度O(松)。
【参考程序】
#pragma GCC optimize(2)
#include <cmath>
#include <cstdio>
#include <cstring>
#define REP(i,low,high) for(register int i=(low);i<=(high);i++)
#define INF 1e10
#define eps 1e-7
using namespace std;
inline bool getmin(double &tar,const double &pat) {return pat+eps<tar?tar=pat,:;}
double a[][]; int m,n;
inline int check() {REP(i,,m) if(a[i][]>eps) return i; return ;}
inline double Simplex()
{
while(int x=check())
{
int y=; double lim=INF; REP(i,,n) if(a[x][i]>eps&&getmin(lim,a[][i]/a[x][i])) y=i;
if(!y) return a[][]=INF; double p=1.0/a[x][y]; a[x][y]=1.0; REP(i,,m) a[i][y]*=p;
REP(i,,n) if(i!=y)
{
double now=a[x][i];
if(fabs(now)>eps) {a[][i]-=now*a[][y]; REP(j,,m) a[j][i]-=now*a[j][y]; a[x][i]=-now*p;}
}
double now=a[x][]; a[][]+=now*a[][y]; REP(i,,m) a[i][]-=now*a[i][y]; a[x][]=-now*p;
}
return a[][];
}
int main()
{
scanf("%d%d",&m,&n); REP(i,,m) scanf("%lf",&a[i][]);
REP(i,,n) {int S,T; scanf("%d%d",&S,&T); REP(j,S,T) a[j][i]=1.0; scanf("%lf",&a[][i]);}
return printf("%.0lf\n",Simplex()+eps),;
}
bzoj1061题解的更多相关文章
- BZOJ1061 [Noi2008]志愿者招募 【单纯形】
题目链接 BZOJ1061 题解 今天终于用正宗的线性规划\(A\)了这道题 题目可以看做有\(N\)个限制和\(M\)个变量 变量\(x_i\)表示第\(i\)种志愿者的人数,对于第\(i\)种志愿 ...
- BZOJ1061:[NOI2008]志愿者招募——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://www.luogu.org/problemnew/show/P3980 申奥 ...
- [BZOJ1061][Noi2008]志愿者招募
[BZOJ1061][Noi2008]志愿者招募 试题描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短期志愿 ...
- 【BZOJ1061】【NOI2008】志愿者招募
[BZOJ1061][NOI2008]志愿者招募 题面 BZOJ 题解 我们设每类志愿者分别招募了\(B[i]\)个 那么,我们可以得到一系列的方程 \[\sum_{S[i]\leq x\leq T[ ...
- BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...
- 【BZOJ1061/3265】[Noi2008]志愿者招募/志愿者招募加强版 单纯形法
[BZOJ1061][Noi2008]志愿者招募 Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
随机推荐
- git安装和使用方法url
1.如何在ubuntu下使用Github? https://blog.csdn.net/tina_ttl/article/details/51326684 https://segmentfault.c ...
- 转帖 maven(一) maven到底是个啥玩意~
转载自:https://www.cnblogs.com/whgk/p/7112560.html 我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清 ...
- C++子类的构造函数后面加:冒号的作用(转)
在C++类的构造函数中经常会看到如下格式的写法: MyWindow::MyWindow(QWidget* parent , Qt::WindowFlags flag) : QMainWindow(pa ...
- codeforces round 433 C. Planning 贪心
题目大意: 输入n,k,代表n列航班,初始始发实践为1,2,3分钟以此类推,然后输入n个整数分别代表延迟1分钟第i个航班损失多少钱,然后调整后的始发时间表是这样的,任何一辆航班的始发时间不能在他的初始 ...
- 【JavaWeb项目】一个众筹网站的开发(九)邮件开发
Java官方支持邮件开发,Javax-mail jdk中默认没有,需要另外下载 apache的基于Javax-mail开发了commons-mail,更加简单高效,推荐使用 一.电子邮件接收和发送协议 ...
- openFrameworks Download
{ https://openframeworks.cc/zh_cn//download/ } 0.10.1 是最新发布的版本. 这个版本是修改了一些BUG的小版本,与版本 0.10.1100%兼容而且 ...
- delphi 打印 PDevMode 说明
//PDevMode = _devicemodeW;// _devicemodeW = record// dmDeviceName: array[0..CCHDEVICENAME - 1] of Wi ...
- App应用推广
Android应用推广渠道: 360手机助手: http://dev.360.cn/ 应用宝: http://open.qq.com/ 百度手机助手: http://shouji.baidu.com/ ...
- C语言新手写扫雷攻略3
界面绘制好后,雷数也布置了,接下来就是游戏的运行过程了,今天先不说具体过程,再来看看需要用到的辅助函数 先是简单的画红旗,鼠标右键的功能是画红旗,至此我们都是在使用函数自己绘图,效率是低,但有助于理解 ...
- 工具类--Excel 导出poi
实现功能 --批量导出excel 文件,配置一个sheet多少条数据,根据查询数据量的多少确定生成几个sheet页. pom 文件导入ExcelUtils工具包,依赖于poi包. <!-- ht ...