【POJ】2976 - Dropping tests 二分->最大化平均值
2017-08-25 23:58
573 查看
http://poj.org/problem?id=2976
n场考试中分别答对a_i题,总题数分别为b_i,允许去掉k场考试,求能达到的最高准确率。
最大化平均值模。
取(n-k)场考试,y[i]=a[i]-mid*b[i]。
n场考试中分别答对a_i题,总题数分别为b_i,允许去掉k场考试,求能达到的最高准确率。
最大化平均值模。
取(n-k)场考试,y[i]=a[i]-mid*b[i]。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <queue> #include <algorithm> using namespace std; int n,k; int a[10005],b[10005]; bool ok(double mid){ double y[10005]; for (int i=0;i<n;i++){ y[i]=a[i]-mid*b[i]; } sort(y,y+n); double sum=0; for (int i=0;i<(n-k);i++){ sum+=y[n-i-1]; } return sum>=0; } int main(){ while ((cin >> n >> k)&&(n||k)){ for (int i=0;i<n;i++){ cin >> a[i]; } for (int i=0;i<n;i++){ cin >> b[i]; } double l=0,r=1000000005; for (int i=0;i<100;i++){ double mid=(l+r)/2; if (ok(mid)) l=mid; else r=mid; } cout << (int)(l*100+0.5) << endl; //注意精度 } }
相关文章推荐
- POJ 2976 Dropping tests——最大化平均值
- POJ---2976(二分,最大化平均值详细讲解)
- 【POJ】3111 - K Best 二分->最大化平均值
- poj 2976 Dropping tests (二分搜索之最大化平均值之01分数规划)
- F - Dropping tests POJ - 2976(二分)
- POJ - 2976 Dropping tests(二分搜索:最大化平均值)
- 二分算法的应用——最大化平均值 POJ 2976 Dropping tests
- POJ - 3111 K Best && POJ - 2976 Dropping tests 最大化平均值(二分||牛顿迭代)
- POJ 2976 3111(二分-最大化平均值)
- POJ 2976 Dropping tests【二分 最大化平均值】
- POJ 3111 K Best + poj 2976 Dropping tests (二分, 最大化平均值)
- POJ 2976 Dropping tests(二分查找 最大化平均值)
- POJ - 2976 Dropping tests 二分 最大化平均值
- POJ 2976 Dropping tests 0/1分数规划问题 最大化平均值 贪心+二分
- POJ - 2976 Dropping tests(二分查找,最大化平均值)
- POJ 2976 Dropping tests (最大化平均值)
- Poj 2976 Dropping tests
- POJ-2976:Dropping tests【01分数规划】
- poj 3111 K Best && poj 2976(最大化平均值)
- POJ-2976-Dropping tests