poj 3579 Median 二分套二分 或 二分加尺取

Median
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 5118 Accepted: 1641

Description

Given N numbers, X1X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i  j  N). We can get C(N,2)differences through this work, and now your task is to find the median of the differences as quickly as you can!

Note in this problem, the median is defined as the (m/2)-th  smallest number if m,the amount of the differences, is even. For example, you have to find the third smallest one in the case of = 6.

Input

The input consists of several test cases.
In each test case, N will be given in the first line. Then N numbers are given, representing X1X2, ... , XN, ( X≤ 1,000,000,000  3 ≤ N ≤ 1,00,000 )

Output

For each test case, output the median in a separate line.

Sample Input

4
1 3 2 4
3
1 10 2

Sample Output

1
8

Source

POJ Founder Monthly Contest – 2008.04.13, Lei Tao
题意:给你N个数字,求这些数字两两之差的绝对值的中位数
二分套二分:核心还是要抓住<x的数量>=m(内层二分)最小x(外层二分)-1才是该序列中的第m小的数,有不理解的话可以看本博客另一篇讲的很详细的文章
下面的第一份代码是使用了lower_bound,复杂度是n(logn)*(logn);时间是563ms#include<cstdio>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
#define MM(a) memset(a,0,sizeof(a))
typedef long long LL;
typedef unsigned long long ULL;
const int mod = 1000000007;
const double eps = 1e-10;
const int inf = 0x3f3f3f3f;
int  a[100005];
long long   l,r,m,n;
int ok(int  x)
{int  cnt=0;for(int i=1;i<=n;i++)cnt+=lower_bound(a+i,a+n+1,a[i]+x)-(a+i)-1;
//lower_bound降低时间复杂度return cnt>=m; } int main() {while(~scanf("%lld",&n)){for(int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);m=n*(n-1)/2;if(m%2==0) m=m/2;else m=(m+1)/2;l=0,r=a[n]-a[1];while(r-l>1){int mid=(r+l)>>1;///枚举得到<x的数量>=m的最小x;if(ok(mid))r=mid;elsel=mid;}printf("%lld\n",r-1);}return 0; }

  有个小技巧是在ok()函数内统计绝对值<x的数量可以不适用lower_bound而使用尺取法

可以降低复杂度,复杂度是(logn)*n,时间只有300多ms

int ok(int  x)
{int  cnt=0;for(int i=1,j=1;i<=n;i++){while(a[j]-a[i]<x&&j<=n)j++;cnt+=(j-1-i);}return cnt>=m;
}

  

转载于:https://www.cnblogs.com/smilesundream/p/5123626.html

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

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

相关文章

qt 嵌入web页面_Qt嵌入浏览器(三)——QWebEngine与Https

本篇简介&#xff1a;本篇的小目标&#xff1a;挑战通过Qt WebEngine实现与服务端的Https双向认证双向认证&#xff0c;Qt WebEngine和Chromium这里先说结论&#xff1a;挑战失败了。至少使用Qt WebEngine目前已实现的组件没有办法直接实现双向认证。先来简要分析一下实现双向认…

python模块;opencv安装

http://www.lfd.uci.edu/~gohlke/pythonlibs/ 1. 步骤1. 下载Python2.73, 安装, 并配置Python环境变量:".\Program Files\Python27;";注意: OpenCV仅支持2.6&2.7, Python不能使用3.x版本;2. 下载OpenCV2.46, 安装, 并配置OpenCV环境变量:".\Program Files\o…

Java中的正则表达式–软介绍

正则表达式是一种可以应用于文本&#xff08;Java中的String&#xff09;的模式。 Java提供了java.util.regex包&#xff0c;用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似&#xff0c;并且非常易于学习。 正则表达式匹配文本&#xff08;或文本的一部…

AJAX入门——工作原理

理解同步交互和异步交互 举个例子&#xff1a;普通B/S模式(同步) AJAX技术(异步) * 同步&#xff1a; 提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事。 发送方发出数据后&#xff0c;等接收方发回响应以后才发下一个数据包的…

Couldn’t communicate with a helper application.

出现此问题 的情景 我在提交svn之前&#xff0c;在Xcode中的Images.xcassets里添加了文件夹后又删除了&#xff0c; 但是 在Xcode中提交的时候&#xff0c;左侧勾选文件那一栏中 出现了此文件夹及里边的文件。 解决&#xff1a; 我在conerstore中将此文件夹 remove后&#xff0…

python 复制文件夹内容 并结构一致_Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法...

本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下&#xff1a;这个东东本来是做来给公司数据同步用的&#xff1a;新服务器还没正式启用&#xff0c;旧的服务器还在使用&#xff0c;每天都有大量图片传到旧服务器上…

css控制页面文字不能被选中user-select:none;

现象&#xff1a;html中可能有些地方不想让用户复制文字&#xff0c;或是用a标签做了个点击按钮&#xff0c;点快的时候文字会被选中&#xff0c;很丑&#xff0c;这个时候可以使用下面的方案禁止文字选中。原因&#xff1a;鼠标点快了文字会被选中。解决方案&#xff1a;不同的…

form表单标签的enctype属性的作用

Enctype是指定将数据回发到服务器时浏览器使用的编码类型&#xff0c;其编码类型有以下三种 一、 application/x-www-form-urlencoded 这是通过表单发送数据时默认的编码类型。我们没有在from标签中设置enctype属性时默认就是application/x-www-form-urlencoded类型的。…

重温“ Java Sucks”

总览 关于Java的不足之处&#xff08;从C开发人员的角度来看&#xff09;的一个有趣的文档是在一段时间&#xff08;大约2000年前&#xff09;写的&#xff0c;但是今天许多论点都像十年前一样真实&#xff08;或不真实&#xff09;。 原始的Java Sucks发布。 短消息回顾 Ja…

Android Studio IDE Out of Memory

场景&#xff1a; 尝试过各种方式&#xff0c;IDE重装&#xff0c;重新启动&#xff0c;设置IDE MEMORY大小JDK MEMORY大小都无效 终于在FILE->INVALIDATE CACHES/RESTART 中点击重新启动之后问题攻克了。转载于:https://www.cnblogs.com/yxwkf/p/5128094.html

git 忽略 部分文件夹_git设置忽略文件和目录

1.登录gitbash命令端进入本地git库目录AdministratorPC201601200946 MINGW32 /d/gitrespository/crmweb (master)2.创建.gitignore3.修改文件&#xff0c;添加忽略正则.idea //忽略.idea文件夹及文件夹下文件*.iml //忽略以.iml结尾的文件【例子】# 忽略*.o和*.a文件*.[oa]# 忽…

在Spring MVC REST应用程序中自动生成WADL

上一次我们学习了WADL的基础知识 。 语言本身并没有那么有趣&#xff0c;只写了一篇有关它的文章&#xff0c;但是本文的标题揭示了为什么我们需要这些知识。 JSR 311的许多实现&#xff1a;JAX-RS&#xff1a;RESTful Web服务的Java API提供了开箱即用的运行时WADL生成&#x…

JSP静态导入与动态导入

JSP静态导入&#xff08;JSP指令标记include&#xff09; JSP页面第一次被请求时&#xff0c;会被JSP引擎转译成Servlet的Java文件&#xff0c;然后再被编译成字节码文件执行。JSP指令标记为JSP页面转译提供整个页面的相关信息。 include指令用于在JSP页面静态插入一个文件&…

关于DJANGO和JAVASCRIPT的时间

最近&#xff0c;实际一些简单统计时&#xff0c;要到库里去检索数据出来用HIGHCHARTS画图&#xff0c; 作一个简单的回照。。 DJANGO用TEMPLATEVIEW来作。专业&#xff0c;正规&#xff1a;&#xff09; class SAView(TemplateView):template_name version/sa_site.htmlpagin…

git里面的文件怎么删不掉_.git目录删不掉

这样的情况并非是第一次遇到了&#xff0c;以前总是会觉得这样的问题只是电脑的错乱&#xff0c;重启一下电脑就好了&#xff0c;但是并非每次都需要重启电脑的&#xff0c;其实简单的设置一下&#xff0c;这个问题就可以解决了。对了&#xff0c;咱们还是说说这到底是个什么问…

集成框架比较– Spring集成,Mule ESB或Apache Camel

公司之间的数据交换增加了很多。 必须集成的应用程序数量也增加了。 这些接口使用不同的技术&#xff0c;协议和数据格式。 但是&#xff0c;这些应用程序的集成应以标准化的方式建模&#xff0c;有效实现并由自动测试支持 。 JVM环境中提供了三个可满足这些要求的集成框架&…

Vue.js组件学习

组件可以扩展HTML元素&#xff0c;封装可重用的HTML代码&#xff0c;我们可以将组件看作自定义的HTML元素。组件系统提供了一种抽象&#xff0c;让我们可以使用独立可复用的小组件来构建大型应用。 一个简单组件例子(全局注册&#xff09; <!DOCTYPE html> <html>&…

Winform MD5

1&#xff1a;MD5 http://www.cmd5.com/ 字节数组----字符串 //将字节数组中每个元素按照指定的编码格式解析成字符串//直接将数组ToString()//将字节数组中的每个元素ToString() //ToString("Params") ToString("x") //可以将十进制字符串转换为16进制字符…

HTML元素显示与隐藏

在WEB开发中&#xff0c;前台HTML中经常需要控制元素的隐藏与显示&#xff0c;我们最为最常见是二级导航栏&#xff08;通过鼠标的移动来触发onmouseover&#xff0c;onmouseout事件来实现二级菜单的显示与隐藏&#xff09;二级菜单的显示与隐藏。 然而控制元素的影响与显示有…

书评:JavaFX 2.0:示例介绍

尽管Oracle在JavaOne 2010和JavaOne 2011上对JavaFX的更改使我从怀疑论者转变为对JavaFX的信奉者 &#xff0c;但是JavaFX愿景的转变并非没有缺点 。 特别是&#xff0c;JavaFX图书市场一直很棘手&#xff0c;因为几乎所有可用的JavaFX图书都与1.x版本有关。 在这篇文章中&…