题目描述

现在有一排共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. 王者荣耀交流协会第五次Scrum立会

    会议时间:2017年10月24号   11:40-12:12,时长32分钟. 会议地点:信息科学与技术学院107教室 昨天工作: 组长使用ZedGraph实现了折线图的生成,基本符合需求,组员们分别完 ...

  2. 小程序仿QQ侧滑例子

    缩放:wxml <!--page/one/index.wxml--> <view class="page"> <view class="pa ...

  3. php字符串统计次数的各种方法(转)

    <?php $str = 'AbCdEfGaBcDeFgH0234;,!-AaBbCcDdEeFfGg'; $str = strtoupper($str); // 不区分大小写时,全部转换成大写 ...

  4. mybatis(一、原理,一对多,多对一查询)

    MyBatis框架及原理分析 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转换 ...

  5. Centos6.5修改镜像为国内的阿里云源

    第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back ...

  6. solr增加中文分析器

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

  7. ubuntu16.04下配置apache2与php

    系统版本:ubuntu16.04 命令均在终端中输入,用浏览器测试 //安装apache2命令 sudo apt install apache2 //测试是否安装成功 浏览器地址栏输入“localho ...

  8. 记录一个Q版openstack搭建教程地址

    https://blog.csdn.net/networken/article/details/80682437 感谢这篇文章的作者,文档很详细,记录一下,希望对大家有帮助.

  9. 互联网同步yum服务器,中科大 rsync createrepo

    参考文章 https://blog.csdn.net/chenjia6605/article/details/82734945 1.本机安装所需工具: yum -y install rsync cre ...

  10. FPGA 主时钟约束---primary clocks

    FPGA 主时钟约束---primary clocks 个人的理解,FPGA做时钟约束的主要目的是给布局布线过程一个指导意义. 注:周期的参数值为ns waveform 里面的第一个参数为波形第一个上 ...