Divide and conquer:Dropping tests(POJ 2976)

                

                最大化平均值

  题目大意:给定你n个分数,从中找出k个数,使∑a/∑b的最大值

  这一题同样的也可以用二分法来做(用DP会超时,可见二分法是多么的实用呵!),大体上是这样子:假设最大的平均值是w,那么题目就是问存不存在∑a/b>=w,我们把这条式子变形

      ∑a-w∑b>=0

   那么这一题就变成了寻找k个最大的a-w*b,使∑a-w∑b>=0成立

  

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <functional>
 4 
 5 using namespace std;
 6 
 7 static double mid, y[1001];
 8 struct _set
 9 {
10     int a,b;
11 }nums[1001];
12 
13 bool judge(const int,const int);
14 
15 int main(void)
16 {
17     int n, k, t;
18     double lb, rb;
19 
20     while (~scanf("%d%d", &n, &k))
21     {
22         if (n == 0 && k == 0)
23             break;
24         for (int i = 0; i < n; i++)
25             scanf("%d", &nums[i].a);
26         for (int i = 0; i < n; i++)
27             scanf("%d", &nums[i].b);
28         lb = 0; rb = 1.00, t = 100;
29 
30         while (t--)
31         {
32             mid = (lb + rb) / 2;
33             if (judge(k, n)) lb = mid;
34             else rb = mid;
35         }
36         printf("%d\n", int(100 * rb + 0.5));
37     }
38 
39     return 0;
40 }
41 
42 bool judge(const int k,const int n)
43 {
44     double sum = 0;
45     
46     for (int i = 0; i < n; i++)
47         y[i] = nums[i].a - nums[i].b*mid;//把∑a/b>=w移项
48     sort(y, y + n);
49 
50     for (int i = 0; i < n - k; i++)
51         sum += y[n - i - 1];//要选择最大的k个,而不是最小的k个
52     return sum > 0;
53 }

  

转载于:https://www.cnblogs.com/Philip-Tell-Truth/p/5139400.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中标准封装结构_java中的构造,封装

今天给大家讲一下面向对象中的构造&#xff0c;封装&#xff1b;构造&#xff1a;构造方法有以下几个特点&#xff1a;1.方法名和类名一致。2.无返回类型。接下来的几种构造样式&#xff0c;直接上代码吧&#xff1a;//这是一个宠物类 有一个属性&#xff1a;名字(name)public …

《白日梦想家》观后感

To see the world, things dangerous to come to, To see behind walls, to draw closer, To find each other and to feel That is the Purpose of LIFE.” 这部片子我很喜欢&#xff0c;大概我在现实生活中&#xff0c;也就是一个梦想家吧。想过很多事&#xff0c;但是真正去…

linux隐藏tomcat版本_Ubuntu 14.04隐藏Tomcat-7.0.52的版本号与操作系统类型

一般情况下&#xff0c;软件的漏洞信息和特定版本&#xff0c;特定操作系统是相关的&#xff0c;因此&#xff0c;软件的版本号以及操作系统类型对攻击者来说是很有价值的。在默认情况下&#xff0c;Tomcat会在返回信息中把自身的版本号&#xff0c;操作系统类型都显示出来&…

自定义tabbar

/** * 注意&#xff1a;* 打开自定义tabbar的背景视图的交互* 选中的tabb视图高度为tabbar背景视图的高度/2-选中视图高度/2* 选中视图加载到tabbar背景视图上* label注意居中&#xff0c;imgView注意选择适应模式&#xff0c;都加载到tabbar背景视图* 设置点击手势的点击事件…

php7与apache整合,apache集成php7.3.5的详细步骤

安装 php首先安装 php 的压缩包&#xff0c;目前下载地址解压文件到这个路径下&#xff1a;D:Program Filesphp-7.3.5(自行选择合适的路径).然后将这个路径加入到环境变量 path 中。然后打开 cmd 运行php -version,输出类似如下&#xff0c;说明安装成功。PHP 7.3.5 (cli) (bui…

php后门 佛像,35张活的再久,也未必见过的照片,图2是佛像通过CT扫描后内部照...

今天这组照片可能很多人都是一次见到&#xff0c;包括小编本人看了也十分惊讶。最大的感触是&#xff0c;很多的商品居然是这么做出来的&#xff0c;看完了才有一种豁然开朗的感觉&#xff0c;废话不多说一起看看吧。鸡蛋里面套鸡蛋1000年前佛像&#xff0c;经过CT扫描后&#…

droidbox官网

droidbox官网&#xff0c;droidbox已经移植到github上了 https://github.com/pjlantz/droidbox 转载于:https://www.cnblogs.com/nightnine/p/5169261.html

java实现缓存中间件,Redis,分布式系统中不可少的缓存中间件

1.为什么要用缓存内存在整个计算机系统来说也就是一个缓存&#xff0c;CPU操作内存速度很快&#xff1b;因为操作数据的时候&#xff0c;先从硬盘中取出数据放到内存中&#xff0c;然后CPU操作数据缓存&#xff1a;提升访问效率&#xff0c;将一些频繁访问地放在缓存里面image.…

matlab自带的人脸分类器,基于MATLAB,运用PCA+SVM的特征脸方法人脸识别

概述&#xff1a;此文章将要描述一种基于MATLAB平台&#xff0c;运用PCA主成分分析方法对图片数据进行降维&#xff0c;运用SVM支持向量机分类器对降维后的图片数据进行分类处理&#xff0c;从而达到人脸识别的目的。首先要感谢以下几篇文章的作者(后面引用会标识文章标号)2.PC…

J2EE的13个规范之(二) JDBC 及其使用

我想大家都知道ODBC是什么&#xff1f;ODBC(OpenDatabaseConnectivity。开放数据库互连)是微软公司开放服务结构(WOSA&#xff0c;WindowsOpenServicesArchitecture)中有关数据库的一个组成部分。它建立了一组规范&#xff0c;并提供了一组对数据库訪问的标准API&#xff08;应…

被恶意上传了.php,轻松解决网站被恶意镜像

老听说有人的网站被恶意镜像&#xff0c;于是我先收藏几种解决方法。镜像站看似一个完整的站点&#xff0c;其实每次用户访问镜像站点&#xff0c;他的小偷程序就会来正版的网站查询数据&#xff0c;并修改相关链接然后呈献给用户。实质上还是在读取原站的数据&#xff0c;我们…

【代码笔记】iOS-对UIView进行截图

一&#xff0c;效果图。 二&#xff0c;工程图。 三&#xff0c;代码。 RootViewController.m #import "RootViewController.h"interface RootViewController ()endimplementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBund…

mysql中括号_干货!Python与MySQL数据库的交互实战

作者 | Huang supreme&#xff0c;责编 | 郭芮头图 | CSDN 下载自视觉中国安装PyMySQL库如果你想要使用python操作MySQL数据库&#xff0c;就必须先要安装pymysql库&#xff0c;这个库的安装很简单&#xff0c;直接使用pip install pymysql&#xff1b;假如这种方式还是安装不上…

苹果天气不显示_热门天气APP被苹果拿下,安卓用户不能再使用

近日&#xff0c;Android平台最受欢迎的订阅式天气APP之一Dark Sky官方宣布其被苹果收购。收购后&#xff0c;Android和Wear OS上的Dark Sky APP都会在2020年7月1日下架&#xff0c;届时将关闭服务并提供退款&#xff0c;iOS版APP则不受影响。Dark Sky天气预报Dark Sky服务早就…

求n的阶乘的算法框图_算法|从阶乘计算看递归算法

欢迎点击「算法与编程之美」↑关注我们&#xff01;本文首发于微信公众号&#xff1a;"算法与编程之美"&#xff0c;欢迎关注&#xff0c;及时了解更多此系列文章。1理解递归“程序设计是实践计算机思维的重要手段”。程序设计的三种特征就是封装、继承和多态。而对于…

Python成长之路_装饰器

一、初入装饰器 1、首先呢我们有这么一段代码&#xff0c;这段代码假设是N个业务部门的函数 1 def f1(aaa): 2 print(我是F1业务) 3 if aaa f1: 4 return ok 5 6 def f2(aaa): 7 print(我是F2业务) 8 if aaa f2: 9 return ok 业务代码这里的…

python卸载_删除系统 Python 引发的惨案

这个案例告诉我们&#xff0c;千万不要动系统自带的 Python&#xff0c;Win系统除外文 | fanzhenyu 出处 | http://fanzhenyu.cn/由于无知&#xff0c;卸载 Ubuntu 自带的 python3 引发惨案&#xff0c;谨记&#xff0c;深刻反思。惨案由于实验需要使用 Python3.6 以上版本&…

python3迭代器是什么,python3 迭代器

1. 想要了解 迭代器 &#xff0c;需要先 知道什么是 可迭代对象。简单点说&#xff0c;可以直接作用于for循环的对象&#xff0c;称之为可迭代对象(Iterable)。1.png可迭代对象&#xff0c;一定实现了__iter__方法。isinstance內建函数&#xff0c;可以判断一个对象是否是某个类…

边缘检测robert原理_机器视觉尺寸检测基础

尺寸测量/边缘检测利用边缘检查的尺寸检查是图像传感器的最新应用趋势。图像传感器可以将检查对象在平面上表现出来&#xff0c;通过边缘检测,测算位置、宽度、角度等。下面将按照处理过程来介绍边缘检查的原理。理解原理有助于优化检查设置。除此之外&#xff0c;还将介绍一些…

Telnet 爆破 kail_【UZI|SN输给DWG后,AD选手被爆破,弹幕刷了半小时Uzi】英雄联盟S10于10月31日终于正式落幕了_科技资讯...

『联盟玩科技摘要_UZI|SN输给DWG后&#xff0c;AD选手被爆破&#xff0c;弹幕刷了半小时Uzi』在SN输给了DWG之后&#xff0c;最大的背锅选手也出来了&#xff0c;AD选手huanfeng成为了这次的背锅选手&#xff0c;毕竟在最重要的第三把比赛中&#xff0c;huanfeng的EZ全程都没有…