POJ 2976 Dropping tests (最大化平均值)
2017-08-04 08:05
507 查看
题目链接:click here~~
【题目大意】给你n个分数的值,要求最小不选k个,使得最后分数相加结果平均值最大
【解题思路】:最大化平均值:參见:click here~~
代码:
【题目大意】给你n个分数的值,要求最小不选k个,使得最后分数相加结果平均值最大
【解题思路】:最大化平均值:參见:click here~~
代码:
#include <stdio.h> #include <math.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; const int N=1e5+10; const double eps=1e-8; double y ,v ,w ; int n,k,m; bool get(double mid)//能够选择使得单个分数的值不小于mid { bool pk; for(int i=0; i<n; i++) y[i]=v[i]-mid*w[i]; sort(y,y+n); //从大到小排序 double sum=0; for(int i=0; i<n-k; i++) sum+=y[n-i-1];//从大往小选择 if(sum>=0) pk=true; else pk=false; return pk; } int main() { //freopen("1.txt","r",stdin); while(scanf("%d%d",&n,&k)!=EOF) { if(n==0&&k==0) break; for(int i=0; i<n; i++) scanf("%lf",&v[i]); for(int i=0; i<n; i++) scanf("%lf",&w[i]); double ll=0,rr=1e10; while(fabs(ll-rr)>eps){ double mid=(ll+rr)/2; if(get(mid)) ll=mid; else rr=mid; } printf("%.0f\n",rr*100); } return 0; }
相关文章推荐
- poj 2976 Dropping tests(最大化平均值)
- POJ 2976 Dropping tests【二分 最大化平均值】
- POJ 2976 Dropping tests (最大化平均值)
- POJ - 2976 Dropping tests(二分搜索:最大化平均值)
- POJ - 2976 Dropping tests(二分查找,最大化平均值)
- POJ - 2976 Dropping tests 二分 最大化平均值
- POJ - 3111 K Best && POJ - 2976 Dropping tests 最大化平均值(二分||牛顿迭代)
- poj 2976 Dropping tests (二分搜索之最大化平均值之01分数规划)
- POJ 2976 Dropping tests(最大化平均值)
- POJ 2976 Dropping tests 0/1分数规划问题 最大化平均值 贪心+二分
- POJ 3111 K Best + poj 2976 Dropping tests (二分, 最大化平均值)
- POJ 2976 Dropping tests(二分查找 最大化平均值)
- 二分算法的应用——最大化平均值 POJ 2976 Dropping tests
- poj 3111 K Best && poj 2976(最大化平均值)
- POJ 2976 3111(二分-最大化平均值)
- 【POJ】2976 - Dropping tests 二分->最大化平均值
- POJ 2976 Dropping tests——最大化平均值
- POJ 2976 (最大化平均值)
- POJ---2976(二分,最大化平均值详细讲解)
- POJ 2976--Dropping tests(Dinkelbach求0/1规划)