BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
时间:2022-05-07
本文章向大家介绍BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】,主要内容包括1061: [Noi2008]志愿者招募、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1061: [Noi2008]志愿者招募
Time Limit: 20 Sec Memory Limit: 162 MB
Submit: 4813 Solved: 2877
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
Sample Output
14
HINT
1 ≤ N ≤ 1000,1 ≤ M ≤ 10000,题目中其他所涉及的数据均 不超过2^31-1。
Source
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1061
分析:单纯形裸题,也就是裸题,只能是裸题QAQ!
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 inline int read()
5 {
6 int x=0,f=1;
7 char ch=getchar();
8 while(ch<'0'||ch>'9')
9 {
10 if(ch=='-')
11 f=-1;
12 ch=getchar();
13 }
14 while(ch>='0'&&ch<='9')
15 {
16 x=x*10+ch-'0';
17 ch=getchar();
18 }
19 return x*f;
20 }
21 const int M=10005;
22 const int N=1005;
23 const int INF=1e9;
24 const double eps=1e-6;
25 int n,m;
26 double a[M][N],b[M],c[N],v;
27 void pivot(int l,int e)///矩阵的转置
28 {
29 b[l]/=a[l][e];
30 for(int j=1;j<=n;j++)
31 {
32 if(j!=e)
33 a[l][j]/=a[l][e];
34 }
35 a[l][e]=1/a[l][e];
36 for(int i=1;i<=m;i++)
37 {
38 if(i!=l&&fabs(a[i][e])>0)
39 {
40 b[i]-=a[i][e]*b[l];
41 for(int j=1;j<=n;j++)
42 {
43 if(j!=e)
44 a[i][j]-=a[i][e]*a[l][j];
45 }
46 a[i][e]=-a[i][e]*a[l][e];
47 }
48 }
49 v+=c[e]*b[l];
50 for(int j=1;j<=n;j++)
51 {
52 if(j!=e)
53 {
54 c[j]-=c[e]*a[l][j];
55 }
56 }
57 c[e]=-c[e]*a[l][e];
58 }
59 double simplex()
60 {
61 while(1)
62 {
63 int e=0,l=0;
64 for(e=1;e<=n;e++)
65 {
66 if(c[e]>eps)
67 break;
68 }
69 if(e==n+1)
70 return v;
71 double mn=INF;
72 for(int i=1;i<=m;i++)
73 {
74 if(a[i][e]>eps&&mn>b[i]/a[i][e])
75 {
76 mn=b[i]/a[i][e];
77 l=i;
78 }
79 }
80 if(mn==INF)
81 return INF;
82 pivot(l,e);
83 }
84 }
85 int main()
86 {
87 n=read();
88 m=read();
89 for(int i=1;i<=n;i++)
90 c[i]=read();
91 for(int i=1;i<=m;i++)
92 {
93 int s=read();
94 int t=read();
95 for(int j=s;j<=t;j++)
96 {
97 a[i][j]=1;
98 }
99 b[i]=read();
100 }
101 printf("%dn",(int)(simplex()+0.5));
102 return 0;
103 }
- Linux系统最大文件打开数优化,解决Too many open files报错
- 【Dev Club 分享】安卓单元测试:What, Why and How
- WordPress记住评论用户信息的js版本,直接操作cookie无视缓存
- 禁止百度转码和百度快照缓存的META声明
- 单机MySQL数据库优化推荐的编译安装参数
- Linux网络实时流量监测工具iftop的安装使用
- Golang学习--GroupCache的使用
- 基于 Webpack & Vue & Vue-Router 的 SPA 初体验
- GO语言高并发学习心得体会例
- Go 语言实现的网络连接池:Pool
- go语言操作redis连接池的方法
- WebVR如此近 - three.js的WebVR示例程序解析
- 【Dev Club分享】基于RxJava的一种MVP实现
- Android 动态链接库加载原理及 HotFix 方案介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Saltstack_使用指南01_部署
- Saltstack_使用指南02_远程执行-验证 2.1. Master与哪些minion正常通信2.2. 查看master与指定minion通信是否正常
- Saltstack_使用指南03_配置管理
- Saltstack_使用指南04_数据系统-Grains 4.1. grains条目项信息4.2. grains全部信息4.3. 查询grains指定信息5.1. m
- 揭开spring初始化方法的神秘面纱
- Saltstack_使用指南05_数据系统-Pillar 4.1. 修改配置文件并重启服务4.2. 显示pillar信息6.1. pillar的sls文件编写6.2.
- Python Docker 查看私有仓库镜像【转】
- CentOS7 Docker私有仓库搭建及删除镜像 【转】
- spring的自定义标签都不会?你可能只学到了spring的皮毛
- 面试官:spring的BeanFatory和FactoryBean区别
- Saltstack_使用指南06_远程执行-指定目标
- 什么是缓存击穿、雪崩、穿透
- 如何卸载CDH7.1.1
- java8 stream的这些开发技巧,你值得好好收藏
- 面试官:mybatis中#{ }和${ }的区别