题目描述

现在有一排共N个数,你需要从中选出恰好K个。选出K个数后,计算它们两两差值的绝对值的最小值S。你需要确定选出哪K个,才能最大化这个S。

输入数据

输入第一行两个正整数N、K,含义如上。 输入第二行N个正整数,依次表示这N个数A1~An。0<Ai≤10^9。

输出数据

一行一个正整数,S的最大值。

样例输入

11 5
19 585 29 1111 5868 3331 272 4441 2251 868 581

样例输出

1092

数据范围

对于30%30%的数据,N≤18N≤18。

对于60%60%的数据,N≤20N≤20。

对于80%80%的数据,N≤100N≤100。

对于100%100%的数据,N≤100000,K<=NN≤100000,K<=N

题目分析
话说我们上次的那道题,难度应该是NOIP第六题水平了,双向SPFA负环割边fread读优。我们迎来了一道数论题。我们看完题目,一脸懵逼。然后发现“最大的最小,最小的最大”,发现这是一道整体二分。于是我就一遍AC了这道水题。
 
代码实现
#include<bits/stdc++.h>
using namespace std;
#define RE register int
#define IL inline
#define N 100001
int n,k,a[N],minn=1e9,maxx;
inline char gc(){
static char buf[],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,,,stdin),p1==p2)?EOF:*p1++;
}template<class T>inline int read(T&x){
x=;register char c=gc();
while(c<)c=gc();
while(c>)x=(x<<)+(x<<)+(c^),c=gc();
}void write(RE x){
if (x>)write(x/);
putchar(x%^);
}inline int check(RE x){
RE sum=,temp=a[];
for (RE i=;i<=n;++i)
if (a[i]>=temp+x) sum++,temp=a[i];
return sum>=k;
}signed main(){
freopen("choose.in","r",stdin),freopen("choose.out","w",stdout);
cin>>n>>k;
for (RE i=;i<=n;++i) cin>>a[i],maxx=max(maxx,a[i]),minn=min(minn,a[i]);
sort(a+,a+n+);
RE r=maxx,l=minn,m,ans=;
while(l<=r) check(m=(l+r)>>)?ans=m,l=m+:r=m-;
write(ans);
return ;
}

代码说明

现在二分答案分为很多个流派,我们学校的许多同学是降临派,我是拯救派,我们已经不流行幸存派了。。。

读者:你个SB,还给我扯,三体看多了吧。

就是说在二分的时候几率答案,二分的方法很多,我不予以展开。这道题的难度啊,NOIP的第二题难度,我5分钟A掉。

【Noip模拟 20160929】选数的更多相关文章

  1. 812考试总结(NOIP模拟37)[数列·数对·最小距离·真相]

    前言 考得挺憋屈的... 先是搞了两个半小时的 T1 后来发现假了,又没多想跳了.. 然后一看 T2 这不是队长快跑嘛... 先是根据自己的想法打了一遍(考完之后发现是对的..) 然后回想了一下之前的 ...

  2. 计蒜客NOIP模拟赛D2T3 数三角形

    刚刚上高中的洁洁在学习组合数学的过程中遇到一道麻烦的题目,她希望你能帮助她解决.给定一张无向完全图 G,其中大部分边被染成蓝色,但也有一些边被染成红色或者绿色.现在,洁洁需要给这张图的多样性进行打分. ...

  3. 【Noip模拟 20160929】花坛迷宫

    题目描述 圣玛格丽特学园的一角有一个巨大.如迷宫般的花坛.大约有一个人这么高的大型花坛,做成迷宫的形状,深受中世纪贵族的喜爱.维多利加的小屋就坐落在这迷宫花坛的深处.某一天早晨,久城同学要穿过这巨大的 ...

  4. 【Noip模拟 20160929】树林

    题目描述 现在有一片树林,小B很想知道,最少需要多少步能围绕树林走一圈,最后回到起点.他能上下左右走,也能走对角线格子. 土地被分成RR行CC列1≤R≤50,1≤C≤501≤R≤50,1≤C≤50,下 ...

  5. 【Noip模拟 20160929】划区灌溉

    题目描述 约翰的奶牛们发现山脊上的草特别美味.为了维持草的生长,约翰打算安装若干喷灌器. 为简化问题,山脊可以看成一维的数轴,长为L(1≤L≤1,000,000)L(1≤L≤1,000,000),而且 ...

  6. 【模拟】选数 luogu-1037

    AC代码 #include <bits/stdc++.h> using namespace std; #define ms(a,b) memset(a,b,sizeof(a)) typed ...

  7. CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

    A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...

  8. NOIP 2002提高组 选数 dfs/暴力

    1008 选数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知 n 个整数 x1,x2,…, ...

  9. 1008 选数 2002年NOIP全国联赛普及组

    1008 选数 2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description ...

随机推荐

  1. RPi 3B Aduio 3.5mm output

    /********************************************************************** * RPi 3B Aduio 3.5mm output ...

  2. 《JavaScript 设计模式与开发实战》第一部分(1、2、3章)笔记

    第1章:面向对象的JavaScript 动态类型和鸭子类型 编程语言按照数据类型大体可以分为两类: ① 静态类型语言:在编译时便已确定变量的类型. ② 动态类型语言:变量类型要到程序运行的时候,待变量 ...

  3. web.html

    在“Web页”节点下,展开WEB-INF节点,然后双击web.xml文件进行查看. web.xml文件包含Facelets应用程序所需的几个元素.使用NetBeans IDE创建应用程序时,将自动创建 ...

  4. 记一次ssh配置的锅

    我们在使用git来管理代码的时候不可避免的要用到ssh密匙,这个密匙怎么配置的百度上很多. 我这边是使用sourcetree来配合管理代码的,但是我ssh配置好了以后无论是克隆代码还是推送代码都提示我 ...

  5. PHP 框架

    LARAVEL/LUMEN,  CI  ,THINKPHP, YII ,SYMFONY YAF, PHALCON ,ICE FRAMEWORK

  6. solr增加中文分析器

    我的solr版本是5.3.0 1将jar包ik-analyzer-solr5-5.x.jar放入sor的web-inf的lib里面 2 在web-inf下面新建classes目录,再新增三个配置文件: ...

  7. selenium 安装

    selenium 安装 一.chromerdriver 1.浏览器版本 1)检查谷歌浏览器版本 打开chrome输入 "chrome://version/"查看版本,如图所示: 2 ...

  8. Django项目在linux系统中虚拟环境部署

    1.在linux系统下,安装virtualenv 命令:pip install virtualenv 2.项目部署前的准备 1. Django web project deployment 1.1.  ...

  9. JAVA面向对象设计中类关系

    现在看以前描述有点小问题:类之间关系分为继承.泛化.依赖.关联.聚合.聚合关系几种.继承是is a关系,泛化(类实现接口)表示like a关系. 类之间的关系种类: Generalization(泛化 ...

  10. WebForm AnyWay

    项目地址 :  https://github.com/kelin-xycs/WebFormAnyWay WebForm AnyWay 用 WebForm 构建 简洁高效 的 Web 应用 WebFor ...