【题目链接】  http://poj.org/problem?id=2976

【题目大意】

  给出每门成绩的总分和得分,去除k门成绩之后
  使得剩余的成绩分数和除以总分得到的数字最大,要求精度在三位小数之内四舍五入到整数

【题解】

  如果答案是x,那么必有选取的几门课程sigma(a*100)>=sigma(b*x)
  至于选取,就可以根据a*100-b*x排序,贪心选取即可。
  对于最后的精度处理问题,只要将数据放大处理末尾即可。

【代码】

#include <cstdio>
#include <algorithm>
using namespace std;
const int N=1010;
struct data{long long a,b;}p[N];
int n,m,k;
bool cmp(data a,data b){return a.a*1000000-a.b*m>b.a*1000000-b.b*m;}
bool check(int x){
m=x;
sort(p+1,p+n+1,cmp);
long long cnt=0;
for(int i=1;i<=k;i++)cnt+=p[i].a*1000000-p[i].b*x;
return cnt>=0;
}
int main(){
while(~scanf("%d%d",&n,&k),n+k){
k=n-k;
for(int i=1;i<=n;i++)scanf("%lld",&p[i].a);
for(int i=1;i<=n;i++)scanf("%lld",&p[i].b);
int l=0,r=1000000,ans;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid))l=mid+1,ans=mid;
else r=mid-1;
}printf("%d\n",ans/10000+(ans%10000>=5000));
}return 0;
}

  

最新文章

  1. LinkedList实现队列和堆栈的代码
  2. WPF的二维绘图(二)——几何图形Geometry
  3. C# 操作鼠标移动到指定的屏幕位置方法
  4. class.forname()用法 转
  5. zxing 一维码部分深入分析与实际应用,识别卡片数量,Android数卡器
  6. gdb学习
  7. 配置域主DNS服务器
  8. 使用工具追踪Entity Framework生成的SQL
  9. 自然语言处理——NLTK中文语料库语料库
  10. HDU1243:反恐训练营
  11. 信息:Could not publish server configuration for Tomcat v6.0 Server at localhost. Multiple Context
  12. Web —— java web 项目 Tomcat 的配置 与 第一个web 项目创建
  13. Java_XML操作
  14. VB2012读取xml
  15. spring 源码之IOC 类图
  16. uboot启动阶段修改启动参数方法及分析
  17. java-两个jre目录和三个lib目录-转
  18. 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标
  19. Android开发之漫漫长途 Ⅴ——Activity的显示之ViewRootImpl的PreMeasure、WindowLayout、EndMeasure、Layout、Draw
  20. GET方式提交中文编码问题以及三种解决方式

热门文章

  1. Digital Roots(hdoj1013)
  2. EntityFramework+Autofac+MVC+EasyUI 搭建公司基本服务项目
  3. 利用Azure Backup备份和恢复虚拟机(2)
  4. Oracle EBS-SQL (INV-7):检查接收中记录数.sql
  5. java 编码 UTF-8、ISO-8859-1、GBK 【转】
  6. 【配置】电信华为HG8245 无线路由器配置 有贴图
  7. SSD和HDD的区别
  8. 杭电oj 2719
  9. QT 绘制按钮 paintEvent enterEvent leaseEvent mouseEvent
  10. 类加载器与methodinterceptor接口