题意:定义最大平均分为 (a1+a2+a3+---+an)/(b1+b2+---+bn),求任意去除k场考试的最大平均成绩

和挑战程序设计上面的最大化平均值的例子一样

判断是否存在x满足条件 (a1+a2+a3+---+an)/(b1+b2+---+bn)>=x

把这个不等式变形就得到

E(ai-x*bi )>=0

所以可以对ai-x*bi降序排序,取前n-k个,看它们的和是不是>=0(或者升序排,取后n-k个)

后来搜题解发现是01分数规划,列的式子好像都差不多-------

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include <cmath>
 5 #include<stack>
 6 #include<vector>
 7 #include<map>
 8 #include<set>
 9 #include<queue>
10 #include<algorithm>
11 using namespace std;
12
13 typedef long long LL;
14 const int INF = (1<<30)-1;
15 const int mod=1000000007;
16 const int maxn=10005;
17
18 double a[maxn],b[maxn],y[maxn];
19 int n,k;
20
21
22 int ok( double x){
23     for(int i=1;i<=n;i++) y[i]= a[i]-b[i]*x;
24     sort(y+1,y+n+1);
25     double ans=0;
26     for(int i= k+1;i<=n;i++) ans+=y[i];
27
28     return ans>=0;
29 }
30
31 int main(){
32     while(scanf("%d %d",&n,&k)!=EOF){
33         if(n==0&&k==0) break;
34         for(int i=1;i<=n;i++) scanf("%lf",&a[i]);
35         for(int i=1;i<=n;i++) scanf("%lf",&b[i]);
36
37         double lb=0,ub=1.00,mid;
38         for(int i=0;i< 100;i++){
39             mid=(lb+ub)/2;
40             if(ok(mid)) lb=mid;
41             else ub=mid;
42         }
43         printf("%d\n",(int)(100*lb+0.5));
44     }
45     return 0;
46 }

View Code

好饿~~(╯﹏╰)b

加油啊---------------goooooooooo----------

转载于:https://www.cnblogs.com/wuyuewoniu/p/4578747.html

POJ 2976 Dropping tests【二分 最大化平均值】相关推荐

  1. POJ 2976 Dropping Tests

    http://poj.org/problem?id=2976 题目大意:给定n个二元组(a,b),扔掉k个二元组,使得剩下的   最大. 这两天一直在搞分数规划,有了前两道题(3621.2728),这 ...

  2. poj 2976 Dropping tests 01分数规划

    题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...

  3. POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐

    题目来源: [题意] 有n个物品的重量和价值分别是wi,vi,从中选取k个物品使得单位重量的价值最大. 输出格式: 输出一行物品的编号. #include<iostream> #inclu ...

  4. Dropping tests

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

  5. Divide and conquer:Dropping tests(POJ 2976)

    最大化平均值 题目大意:给定你n个分数,从中找出k个数,使∑a/∑b的最大值 这一题同样的也可以用二分法来做(用DP会超时,可见二分法是多么的实用呵!),大体上是这样子:假设最大的平均值是w,那么题目 ...

  6. Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】

    4145:放弃考试 总时间限制: 1000ms 内存限制: 65536kB 描述 在一门课程中,一共有n场考试.假如你在i场考试中可以答对bi道题中的ai道,那么你的累计平均分定义为:100·Σai/ ...

  7. K BEST(最大化平均值)

    K BEST(最大化平均值) Demy has n jewels. Each of her jewels has some value vi and weight wi.Since her husba ...

  8. POJ_2456_Agressive_cows_(二分,最大化最小值)

    描述 http://poj.org/problem?id=2456 有n个小屋,线性排列在不同位置,m头牛,每头牛占据一个小屋,求最近的两头牛之间距离的最大值. Aggressive cows Tim ...

  9. poj 1064 java_poj 1064(二分答案)

    题意: 有N条绳子,长度分别为 length[1,2,3,........,N]. 如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长有多长? 结果保留两位小数. 题解: 二分可能的长度. AC ...

最新文章

  1. 消息存储服务器吗,消息服务器 消息存储
  2. snowflake做主键 自增_自增ID算法snowflake - C#版
  3. Android 自定义相机
  4. 翻译:Swift5 使用日期类型:Date、DateFormatter、DateComponent
  5. Java编程题——简单下拉框二级联动
  6. 关于CWMP基础(三)----(TR111)DHCP
  7. HTML+css制作简单游戏界面
  8. linu系统中dhcp的搭建
  9. 高博课程编程作业之计算小萝卜的坐标
  10. Cocos2d-JS 项目接入AnySDK
  11. 用Python做九宫格照片
  12. AD域创建及加入域的办法
  13. 移动端H5实现手动选择地图点的一种解决方案
  14. Java学习-节点3
  15. Java控制器controller_实现接口Controller定义控制器
  16. 利用Python统计微信联系人男女比例以及简单的地区分布
  17. 第一次写学术论文无从下手咋办?
  18. 2020-02-26
  19. 浅谈exp与expdp的区别
  20. java开发岗位面试题汇总及解析2

热门文章

  1. http、TCP/IP协议与socket之间的区别
  2. scala typetag java,scala – 从类型中获取TypeTag?
  3. mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询
  4. 030_Message消息提示
  5. 036_Hashtable和HashMap的区别
  6. mysql udf提权_MySQL日志安全分析技巧
  7. 计算机网络多媒体图像矢量图,13多媒体信息处理——图像处理(一)
  8. Spark详解(八):Spark 容错以及高可用性HA
  9. Java编程思想 第十五章:泛型
  10. [NSDI 17] TuX2: 面向机器学习的分布式图计算系统 学习总结