POJ 2976 Dropping Tests
http://poj.org/problem?id=2976
题目大意:给定n个二元组(a,b),扔掉k个二元组,使得剩下的 最大。
这两天一直在搞分数规划,有了前两道题(3621、2728),这道题就是完完全全的大水题了。
设 r=100*∑(ai)/∑(bi) ,有
100*∑(ai)-r*∑(bi)=0
∑(100*ai-r*bi)=0
这个东西是单调的……
我们可以将每个二元组的得分设为100*a-r*b,然后从大到小排序,取前n-k个得分求和(sum)。若sum>0则说明r还不够大,可以向上二分;反之向下二分……
我最讨厌精度什么的了……尤其是C++的精度……
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#define eps 1e-4
using namespace std;double score[1005];
int a[1005],b[1005],n,k;
bool cmp(double a,double b){return a>b;}int main(){while(scanf("%d%d",&n,&k),n+k){for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);double low=0,high=100,mid;while(high-low>eps){mid=(low+high)/2.0;for(int i=1;i<=n;i++) score[i]=a[i]*100.0-b[i]*mid;sort(score+1,score+n+1,cmp);double sum=0;for(int i=1;i<=n-k;i++) sum+=score[i];if(sum>0) low=mid;else high=mid;}cout<<(int)(low+.5)<<endl;}return 0;
}
转载于:https://www.cnblogs.com/Delostik/archive/2011/07/28/2119404.html
POJ 2976 Dropping Tests相关推荐
- poj 2976 Dropping tests 01分数规划
题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...
- POJ 2976 Dropping tests【二分 最大化平均值】
题意:定义最大平均分为 (a1+a2+a3+---+an)/(b1+b2+---+bn),求任意去除k场考试的最大平均成绩 和挑战程序设计上面的最大化平均值的例子一样 判断是否存在x满足条件 (a1+ ...
- Dropping tests
题目链接:http://poj.org/problem?id=2976 Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total S ...
- Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
4145:放弃考试 总时间限制: 1000ms 内存限制: 65536kB 描述 在一门课程中,一共有n场考试.假如你在i场考试中可以答对bi道题中的ai道,那么你的累计平均分定义为:100·Σai/ ...
- 二分+01分数规划+最大化平均值 Dropping tests POJ - 2976
题意: 给你若n个分数,分子a[i]a[i]a[i],分母b[i]b[i]b[i],使满足公式100⋅∑i=1nai∑i=1nbi100\cdot\tfrac{\sum_{i=1}^{n} a_{i} ...
- 【POJ - 2976】【ZOJ - 3068】【SCU - 2992】Dropping tests (01分数规划)
题干: In a certain course, you take n tests. If you get ai out of bi questions correct on test i, your ...
- Divide and conquer:Dropping tests(POJ 2976)
最大化平均值 题目大意:给定你n个分数,从中找出k个数,使∑a/∑b的最大值 这一题同样的也可以用二分法来做(用DP会超时,可见二分法是多么的实用呵!),大体上是这样子:假设最大的平均值是w,那么题目 ...
- POJ-2976 Dropping tests 01分数规划
题目链接:http://poj.org/problem?id=2976 很典型的01分数规划,sort+二分即可.注意精度问题,这种四舍五入的问题一般都是两种处理方法:1.printf("% ...
- POJ2976:Dropping tests——题解
http://poj.org/problem?id=2976 题目大意:给定n个二元组(a,b),从中取n-k个,使得100*∑a/∑b最大. 01分数规划裸题,设λ是小于等于最优解的,那么λ< ...
最新文章
- nova ERROR (ClientException): 解决方法
- LeetCode Merge k Sorted Lists 解决报告
- java 面试什么是类_Java 面试题代码类收集
- 杭电1437 天气情况
- vscode npm install下载权限问题解决
- [bzoj1042] [HAOI2008]硬币购物
- HDU 6096 树套树
- 教你给视频画面打马赛克
- Pycharm安装scrapy以及初始化爬虫项目
- python小学口算题库生成器_PrimarySchoolMathematics
- Graph Convolutional Tracking
- so库方法的调用过程
- 17年App Store最新官方审核指南
- EEPROM,NAND,NOR,QSPI FLASH的区别
- 3D建模技巧:如果想用好ZBrush,必须知道这10点!
- FPGA开发常用软件的安装
- (转载)视频采集学习笔记
- VMware workstation搭建华为FusionCompute实验环境(二)保姆级安装教程,可运行虚拟机
- python 动态仪表盘_利用EXCEL的power pivot+切片器制作动态仪表盘
- SQL Server 2016详细安装步骤,后附链接