博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2976 Dropping tests(二分)
阅读量:6209 次
发布时间:2019-06-21

本文共 1956 字,大约阅读时间需要 6 分钟。

In a certain course, you take n tests. If you get ai out of bi questions correct on test i, your cumulative average is defined to be

.

Given your test scores and a positive integer k, determine how high you can make your cumulative average if you are allowed to drop any k of your test scores.

Suppose you take 3 tests with scores of 5/5, 0/1, and 2/6. Without dropping any tests, your cumulative average is . However, if you drop the third test, your cumulative average becomes .

Input

The input test file will contain multiple test cases, each containing exactly three lines. The first line contains two integers, 1 ≤ n ≤ 1000 and 0 ≤ k < n. The second line contains n integers indicating ai for all i. The third line contains n positive integers indicating bi for all i. It is guaranteed that 0 ≤ ai ≤ bi ≤ 1, 000, 000, 000. The end-of-file is marked by a test case with n = k = 0 and should not be processed.

Output

For each test case, write a single line with the highest cumulative average possible after dropping k of the given test scores. The average should be rounded to the nearest integer.

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
To avoid ambiguities due to rounding errors, the judge tests have been constructed so that all answers are at least 0.001 away from a decision boundary (i.e., you can assume that the average is never 83.4997).

题意:

n场考试中分别答对a_i题,总题数分别为b_i,允许翘掉k场考试,求能达到的最高准确率。

题解:

二分查找准确率即可。(这类题贪心肯定不行,通过样例也可以看出来)。

题目测试数据可以在这里找:

#include
#include
#include
#include
using namespace std;const int maxn=1e5+5;const double INF=1e6+5,esp=1e-6;int v[maxn],w[maxn];double y[maxn];int n,k;bool check(double x)//可以选择使得单位重量的价值不小于x{ for(int i=0;i
=0;}void solve(){ double lb=0,ub=INF; while(lb+esp
>n>>k,n||k) { for(int i=0;i<2*n;i++) { if(i

转载于:https://www.cnblogs.com/orion7/p/7739266.html

你可能感兴趣的文章
groovy
查看>>
Ettus公司 LP0965天线安装指南
查看>>
.Net架构师-开闭原则
查看>>
node笔记
查看>>
[产品相关] 时间管理
查看>>
[Android Pro] 获取手机已经安装的应用 和 获取当前正在运行的所有进程(一个uid对应多个pid)...
查看>>
uva 100 The 3n + 1 problem (RMQ)
查看>>
python注释、基本数据类型、运算符
查看>>
EditText
查看>>
无法为表空间 ***中的段创建 INITIAL 区
查看>>
3、安卓数据存储——缓存、内存管理
查看>>
使用sysbench对MySQL进行压力测试
查看>>
SQL的事务回滚操作带案例分析
查看>>
客户端
查看>>
对于数组知识的补救示例与分享
查看>>
51NOD1835 完全图
查看>>
毛玻璃效果
查看>>
二分算法和三分算法
查看>>
Linux下遇到的操作 (持续更新……)
查看>>
Swiper Animate动画
查看>>