今年有 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. Deep learning调参经验
  2. 比特币现金基金会和Yeewallet达成合作,助力BCH传播
  3. 10.Verilog状态机使用方法
  4. sql server数据库课程设计分析
  5. 8.0强行转换后变成了7_如何在服务器上安装SSL证书,让你的网站变成https
  6. SSM 整合开发初见面
  7. 干的漂亮!一夜之间GPS在南海信号全无,美军只能干瞪眼
  8. 高质量的用户体验 推进IT运维向业务服务转变——中国移动通信集团公司
  9. Docker-compose部署gitlab中文版
  10. 固高GTS运动控制卡,C#语言三轴点胶机样本程序源代码
  11. vc830l 说明书_数字万用表vc830l视频教程 视频
  12. 清除Chrome的缓存、Cookie
  13. 【信息系统项目管理师】第二十一章 项目组合管理(考点汇总篇)
  14. JLINK仿真器来仿真调试mini2440
  15. 给我5个带”一“字的成语
  16. matlab乖离率计算,终于有人把“乖离率”说清楚了,看懂少走十年弯路!
  17. ZbxTable 2.0 重磅发布!6大主要优化功能!
  18. 单目多帧自监督深度估计(2021-2022)研究进展
  19. Android 常用技术
  20. c语言时钟程序整点报时,单片机开发的(带整点报时、音乐闹钟)电子时钟(一)...

热门文章

  1. AttachThreadInput
  2. [转帖]不要迷失在技术的海洋中
  3. 基于android7.1+msm8937读取ADC采样值
  4. 使用Silverlight for Embedded开发绚丽的界面(4)
  5. 【数据结构】B-Tree, B+Tree, B*树介绍
  6. echarts实现柱状图分页展示
  7. OpenWrt启动过程分析+添加自启动脚本【转】
  8. 阿里云服务器如何加强服务器的安全?有哪些安全措施?
  9. 云计算产业被市场广泛看好 未来市场规模达4300亿元
  10. 基本的输入输出函数介绍