POJ 2976 Dropping tests【二分 最大化平均值】
题意:定义最大平均分为 (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【二分 最大化平均值】相关推荐
- POJ 2976 Dropping Tests
http://poj.org/problem?id=2976 题目大意:给定n个二元组(a,b),扔掉k个二元组,使得剩下的 最大. 这两天一直在搞分数规划,有了前两道题(3621.2728),这 ...
- poj 2976 Dropping tests 01分数规划
题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...
- POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐
题目来源: [题意] 有n个物品的重量和价值分别是wi,vi,从中选取k个物品使得单位重量的价值最大. 输出格式: 输出一行物品的编号. #include<iostream> #inclu ...
- Dropping tests
题目链接:http://poj.org/problem?id=2976 Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total S ...
- Divide and conquer:Dropping tests(POJ 2976)
最大化平均值 题目大意:给定你n个分数,从中找出k个数,使∑a/∑b的最大值 这一题同样的也可以用二分法来做(用DP会超时,可见二分法是多么的实用呵!),大体上是这样子:假设最大的平均值是w,那么题目 ...
- Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
4145:放弃考试 总时间限制: 1000ms 内存限制: 65536kB 描述 在一门课程中,一共有n场考试.假如你在i场考试中可以答对bi道题中的ai道,那么你的累计平均分定义为:100·Σai/ ...
- K BEST(最大化平均值)
K BEST(最大化平均值) Demy has n jewels. Each of her jewels has some value vi and weight wi.Since her husba ...
- POJ_2456_Agressive_cows_(二分,最大化最小值)
描述 http://poj.org/problem?id=2456 有n个小屋,线性排列在不同位置,m头牛,每头牛占据一个小屋,求最近的两头牛之间距离的最大值. Aggressive cows Tim ...
- poj 1064 java_poj 1064(二分答案)
题意: 有N条绳子,长度分别为 length[1,2,3,........,N]. 如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长有多长? 结果保留两位小数. 题解: 二分可能的长度. AC ...
最新文章
- 消息存储服务器吗,消息服务器 消息存储
- snowflake做主键 自增_自增ID算法snowflake - C#版
- Android 自定义相机
- 翻译:Swift5 使用日期类型:Date、DateFormatter、DateComponent
- Java编程题——简单下拉框二级联动
- 关于CWMP基础(三)----(TR111)DHCP
- HTML+css制作简单游戏界面
- linu系统中dhcp的搭建
- 高博课程编程作业之计算小萝卜的坐标
- Cocos2d-JS 项目接入AnySDK
- 用Python做九宫格照片
- AD域创建及加入域的办法
- 移动端H5实现手动选择地图点的一种解决方案
- Java学习-节点3
- Java控制器controller_实现接口Controller定义控制器
- 利用Python统计微信联系人男女比例以及简单的地区分布
- 第一次写学术论文无从下手咋办?
- 2020-02-26
- 浅谈exp与expdp的区别
- java开发岗位面试题汇总及解析2
热门文章
- http、TCP/IP协议与socket之间的区别
- scala typetag java,scala – 从类型中获取TypeTag?
- mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询
- 030_Message消息提示
- 036_Hashtable和HashMap的区别
- mysql udf提权_MySQL日志安全分析技巧
- 计算机网络多媒体图像矢量图,13多媒体信息处理——图像处理(一)
- Spark详解(八):Spark 容错以及高可用性HA
- Java编程思想 第十五章:泛型
- [NSDI 17] TuX2: 面向机器学习的分布式图计算系统 学习总结