今年有 n 场 ACM-ICPC 竞赛,小明每场都有资格参加。第 i 场竞赛共有 b[i] 道题。小明预测第 i 场他能做出 a[i] 道题。为了让自己看着更“大佬”一些,小明想让自己平均做出的题数越大越好,也就是最大化大佬度,大佬度的定义如下:
为了达到这个目的,小明决定放弃 k 场比赛的参赛资格。请求出最大的大佬度。
例如有 3 场小型比赛,题数分别是 5 题、1 题、6 题,小明预测自己分别能做出 5 题、0题、2题。如果每场都参加,那么大佬度是 ,看着不怎么大佬。不过,如果放弃第 3 场比赛,那么大佬度就是  ,看着更加大佬了。
Input
输入测试文件含有多组测试,每组有 3 行。第一行有 2 个整数, 1 ≤ n ≤ 1000 和 0 ≤ k < n。第二行有 n 个整数,即每个 a[i]。第三行含有 n 个正整数 b[i]。保证 0 ≤ a[i] ≤ b[i] ≤ 1, 000, 000, 000。文件末尾由 n = k = 0 标识,并且不应该被处理。
Output
对于每组测试数据,输出一行整数,即放弃 k 场比赛后可能的最高大佬度。大佬度应该舍入到最近的整数。
Sample Input
3 1
5 0 2
5 1 6
4 2
1 2 7 9
5 6 7 9
0 0
Sample Output
83
100
Hint

为了避免舍入误差带来的二义性,所有答案与除法边界相差至少 0.001 (例如答案永远不可能出现 83.4997)。

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{int n,k;while(scanf("%d%d",&n,&k)&&n){double  a[1000],b[1000];for(int i=0;i<n;++i)scanf("%lf",&a[i]);//能做for(int i=0;i<n;++i)scanf("%lf",&b[i]);//有多少double low=0.0,high=100.0,mid,ant;while(high-low>0.00001){double c[1000];ant=0;mid=low+(high-low)/2.0;for(int i=0;i<n;++i)c[i]=a[i]-mid*b[i];sort(c,c+n);for(int i=k;i<n;++i)ant+=c[i];if(ant>0)low=mid;elsehigh=mid;}printf("%.0f\n",mid*100);//  cout<<mid<<endl;}return 0;
}

开始只用了二分搜索,TLE了

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{int n,k;while(scanf("%d%d",&n,&k)&&n){int  a[1000],b[1000];int c[1000];for(int i=0;i<n;++i){scanf("%d",&a[i]);//能做c[i]=i;}for(int i=0;i<n;++i)scanf("%d",&b[i]);//有多少double low=0.0,high=100,mid,ant=0;while(high-low>0.1){mid=low+(high-low)/2.0;do{double aa=0,bb=0,ans;for(int i=0;i<n-k;++i){aa+=a[c[i]];// cout<<c[i]<<' ';}// cout<<endl;for(int i=0;i<n-k;++i)bb+=b[c[i]];ans=100*(1.0*aa/bb)*1.0;if(ans>ant){ant=ans;//  cout<<ant<<endl;}}while(next_permutation(c,c+n));if(ant>=mid)low=mid;elsehigh=mid;}printf("%.0lf\n",ant);//cout<<ant<<endl;}return 0;
}

poj2976Dropping tests (二分搜索+还是涉及昨天遇见的o1分数规划)相关推荐

  1. 二分+01分数规划+最大化平均值 Dropping tests POJ - 2976

    题意: 给你若n个分数,分子a[i]a[i]a[i],分母b[i]b[i]b[i],使满足公式100⋅∑i=1nai∑i=1nbi100\cdot\tfrac{\sum_{i=1}^{n} a_{i} ...

  2. 【POJ - 2976】【ZOJ - 3068】【SCU - 2992】Dropping tests (01分数规划)

    题干: In a certain course, you take n tests. If you get ai out of bi questions correct on test i, your ...

  3. Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】

    4145:放弃考试 总时间限制: 1000ms 内存限制: 65536kB 描述 在一门课程中,一共有n场考试.假如你在i场考试中可以答对bi道题中的ai道,那么你的累计平均分定义为:100·Σai/ ...

  4. POJ2976——Dropping tests(0/1分数规划)

    传送门 最简单的分数规划 对于最终答案ans,有 ans=Σai∗100Σbians=\frac{Σa_i*100}{Σb_i}ans=Σbi​Σai​∗100​ 则 Σbi∗ans=Σai∗100Σ ...

  5. poj2976 Dropping tests(01分数规划 好题)

    https://vjudge.net/problem/POJ-2976 又是一波c++AC,g++WA的题.. 先推导公式:由题意得 Σa[i]/Σb[i]<=x,二分求最大x.化简为Σ(a[i ...

  6. POJ-2976 Dropping tests 01分数规划

    题目链接:http://poj.org/problem?id=2976 很典型的01分数规划,sort+二分即可.注意精度问题,这种四舍五入的问题一般都是两种处理方法:1.printf("% ...

  7. poj 2976 Dropping tests 01分数规划

    题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...

  8. POJ2976-Dropping tests-01分数规划

    关于01分数规划可以看这里,讲的很清楚:http://blog.csdn.net/hhaile/article/details/8883652 二分的思想,每次只要选取最大的N-K个d[i],如果可以 ...

  9. 【算法总结】二分搜索

    一. STL函数 lower_bound() 试图在已排序的 [first, last) 中寻找元素 value.返回一个迭代器,指向第一个"不小于 value"的元素,如果 va ...

最新文章

  1. c++判断双击间隔_录井工常见故障判断处理
  2. Aix 6.1下安装Oracle11g详细文档
  3. koa --- 使用koa-multer和element-ui组件上传头像
  4. ln创建、删除软/硬链接
  5. ShardingSphere(三) 水平分库配置搭建,实现写入读取
  6. 2017.4.20 比例简化 思考记录
  7. 学会这个技能,让你的Fitnesse锦上添花
  8. python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
  9. 随机游走分割算法(Random Walk Segmentation Algorithm)
  10. 诺禾--分子生物学常用小软件分享
  11. 徐培成2017大数据Hadoop经典案例-徐培成-专题视频课程
  12. parted扩展磁盘分区(实践篇)
  13. cf端游界面更新显示服务器繁忙,电脑登录cf老是显示更新失败怎么办
  14. win10关闭防火墙脚本.bat
  15. c语言编程模拟选举,C语言编程题精选
  16. SQL语句 字段类型转换—文本型转换成数值型
  17. 阿里云对象存储OSS配置了cnd之后产生的外网流出流量费用
  18. 【自然语言处理(NLP)】基于ERNIE语言模型的文本语义匹配
  19. 信用卡违约预测模型的开发思路
  20. 华硕笔记本计算机名称,华硕NB是如何命名的?5招教你看清楚

热门文章

  1. Linux Gedit 打开txt文件乱码
  2. Informix IDS 11体系打点(918考试)认证指南,第 5 局部: 数据库管事器操作(4)
  3. 防止MDI子窗体多次实例化的代码
  4. 权变措施 弹回计划 应急计划的区别
  5. windows 安装与使用redis
  6. NodeJS:将指定文件夹内所有文件重命名为英文
  7. Sense编辑器(Sense Editor)
  8. RocketMQ Apache顶级项目之路
  9. PHP 分页类 高洛峰 细说PHP
  10. WPF路径动画(动态逆向动画)