【题目链接】  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;
}

  

POJ 2976 Dropping tests(二分答案)的更多相关文章

  1. POJ 2976 Dropping tests (二分+贪心)

    题意:给定 n 个分数,然后让你去年 m 个分数,使得把剩下的所有的分子和分母都相加的分数最大. 析:这个题并不是分子越大最后结果就越大,也不是整个分数越大,最后结果就越大的,我们可以反过来理解,要去 ...

  2. POJ 2976 Dropping tests [二分]

    1.题意:同poj3111,给出一组N个有价值a,重量b的物品,问去除K个之后,剩下的物品的平均值最大能取到多少? 2.分析:二分平均值,注意是去除K个,也就是选取N-K个 3.代码: # inclu ...

  3. 二分算法的应用——最大化平均值 POJ 2976 Dropping tests

    最大化平均值 有n个物品的重量和价值分别wi 和 vi.从中选出 k 个物品使得 单位重量 的价值最大. 限制条件: <= k <= n <= ^ <= w_i <= v ...

  4. POJ - 2976 Dropping tests && 0/1 分数规划

    POJ - 2976 Dropping tests 你有 \(n\) 次考试成绩, 定义考试平均成绩为 \[\frac{\sum_{i = 1}^{n} a_{i}}{\sum_{i = 1}^{n} ...

  5. POJ 2976 Dropping tests 【01分数规划+二分】

    题目链接:http://poj.org/problem?id=2976 Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  6. POJ 2976 Dropping tests(01分数规划入门)

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11367   Accepted: 3962 D ...

  7. POJ 2976 Dropping tests 01分数规划 模板

    Dropping tests   Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6373   Accepted: 2198 ...

  8. Poj 2976 Dropping tests(01分数规划 牛顿迭代)

    Dropping tests Time Limit: 1000MS Memory Limit: 65536K Description In a certain course, you take n t ...

  9. POJ 2976 Dropping tests(01分数规划)

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:17069   Accepted: 5925 De ...

  10. POJ 2976 Dropping tests (0/1分数规划)

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4654   Accepted: 1587 De ...

随机推荐

  1. 运算符 - PHP手册笔记

    运算符优先级 每种编程语言都有运算符,运算符要学会灵活使用. 运算符拥有不同的优先级和结合方向. <?php var_dump(1 <= 1 == 1); // true var_dump ...

  2. mysql应用技巧

    1. 查看mysql死锁 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 2.查看正在锁的事务 SELECT * FROM INFORMATION_SCHEM ...

  3. 利用Azure Automation实现云端自动化运维(2)

      Azure automation的认证: 用户名和密码   在Azure的automation中使用Powershell可以管理当前订阅的资源,也可以管理不同订阅的资源,那么问题就来了,安全性如何 ...

  4. ie 6 position fixed

    IE6position:fixed问题解决方案 2013-11-06 18:25:04|  分类: JS/CSS |  标签:ie6  fixed  |举报 |字号大中小订阅     普通写法 #to ...

  5. QT父子与QT对象delete

    原地址:http://www.qteverywhere.com/archives/437 很多C/C++初学者常犯的一个错误就是,使用malloc.new分配了一块内存却忘记释放,导致内存泄漏.Qt的 ...

  6. HDU 4082 Hou Yi's secret(暴力)

    直接6重循环就行了吧...判三角形相似直接从小到大枚举两向量夹角是否相等就行了.注意去重点跟三点共线就行了... #include<algorithm> #include<iostr ...

  7. opendrive.com提供的免费网盘

    opendrive.com是由以前freehao123给大家介绍的BOXSTr免费网络硬盘演变而来的,现在BOXSTr已经无法使用了.打开BOXSTr网站就会自动跳转到opendrive.com网站. ...

  8. hdu 1241 Oil Deposits_dfs or bfs

    题意:给你n*m的图,@代表有油田的格子,*代表没油田的格子,如果油田旁边有油田就合并一起成为一个油田区,合并的方向为8个,现在问你油田合并过后,有多少个油田区 解法:用dfs or bfs dfs: ...

  9. 查询本天气预报Web Services支持的国内外城市或地区信息

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangkui.blog.51cto.com/1796259/497324 本文 ...

  10. Linux 程序启停脚本

    start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...