无限逼近思想


//#define LOCAL
#include<cstdio>
#include<algorithm>
using namespace std;
int const MAX_N=100001;
int const INF=10000000;
int N,M,x[MAX_N];
void init()
{
for(int i=0;i<N;i++)
{
scanf("%d",&x[i]);
}
}
//
bool C(int d)
{
int last=0;
for(int i=1;i<M;i++)
{
int crt=last+1;
while(crt<N&&x[crt]-x[last]<d)
{
crt++;
}
if(crt==N) return false;
last=crt;
}
return true;
}
void solve()
{
//
std::sort(x,x+N);

int lb=0,ub=INF;
while(ub-lb>1)
{
int mid=(lb+ub)/2;
if(C(mid)) lb=mid;
else ub=mid;
}
printf("%d\n",lb);
}
int main()
{
#ifdef LOCAL
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
#endif
while(~scanf("%d%d",&N,&M))
{
init();
solve();
}
return 0;
}

无限逼近思想

时间: 2024-10-05 07:59:17

无限逼近思想的相关文章

二分搜索(2、Yougth的最大化,无限逼近最大值)

条件C(x):=可以选择是单位重量的价值不小于x,则该问题就变成了满足C(x)的最大的x,那么怎么判断C(x)是否可行呢?假设我们选了某个物品的集合S,那么它们的单位重量价值是: 因此就变成了判断是否存在s满足下面条件: 把这个不等是进行变形就得到 //#define LOCAL #include<cstdio> //#include<iostream>注意引入头文件,编译时候需要连接,是费内存的,如果不需要尽量不要引入 #include<algorithm> int

无限极分类中递归查找一个树结构

问题:设计公司的员工表,员工有不同级别,要求可通过一个员工查到其下属的所有员工,也可查到其所属的上级. 解决:递归实现无限分类思想,每一个员工存入其所属的上级的id作为自己的pid,另外存入path,path包含自身id,方便显示路径. 递归的注意点: 1.一定有一个判断条件,否则递归就死循环了 2.每次的递归结果要保存起来,变量自增的实现三种方式: function(&$bar):通过引用地址 global :通过设置为全局变量 static :设置为静态变量 header( "Con

ACM学期总结

从大一就开始对这个东西感兴趣,当时其实并不知道ACM是什么,当时学习想法也很简单,就是想用来提高自己的编程能力. 接触ACM已经有了一学期的时间,说时候ACM真的很难学,从一开始的激情满满,到后来的索然无趣.ACM是十分花费时间的东西,平均下来我几乎每道题的的时间差不多就有两个小时,虽然会很打击人信心,但是在某些方面自己的能力确实提高了不少,无论自己在考虑问题,分析问题上,还是对于语言的认识上,考虑的比之前更加全面,分析的比之前更加透彻,ACM便是运用已有的算法,解决更加接近于现实的问题.刷题只

图像压缩算法简要说明

图像压缩的目的是减少图像的不相关性和冗余性使得其能够以有效的形式存储或者传输.图像压缩分为有损压缩和无损压缩,无损图像压缩常用于档案资料.医学.工程制图.剪贴画和漫画.有损图像压缩,对于低比特流的传输条件下常使用.有损图像压缩对于那些可以牺牲少许的图像质量而希望获得低比特传输的图像具有很广泛的应用. 图像的压缩方法就是研究如何减少或去掉数据中冗余部分以减小数据的存储空间,图像压缩中数据冗余主要包含以下几种: 1.编码冗余: 以灰度图像为例,像素点的取值范围是[0,255],而对于一幅图像来说,其

js十大排序算法详解

十大经典算法导图  图片名词解释:n: 数据规模k:"桶"的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1  原始人冒泡排序 function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1]

数据挖掘中所需的概率论与数理统计知识

http://blog.csdn.net/v_july_v/article/details/8308762 数据挖掘中所需的概率论与数理统计知识 (关键词:微积分.概率分布.期望.方差.协方差.数理统计简史.大数定律.中心极限定理.正态分布) 导言:本文从微积分相关概念,梳理到概率论与数理统计中的相关知识,但本文之压轴戏在本文第4节(彻底颠覆以前读书时大学课本灌输给你的观念,一探正态分布之神秘芳踪,知晓其前后发明历史由来),相信,每一个学过概率论与数理统计的朋友都有必要了解数理统计学简史,因为,

深入浅出的学习傅里叶变换

学习傅里叶变换需要面对大量的数学公式,数学功底较差的同学听到傅里叶变换就头疼.事实上,许多数学功底好的数字信号处理专业的同学也不一定理解傅里叶变换的真实含义,不能做到学以致用! 事实上,傅里叶变换的相关运算已经非常成熟,有现成函数可以调用.对于绝大部分只需用好傅里叶变换的同学,重要的不是去记那些枯燥的公式,而是解傅里叶变换的含义及意义. 本文试图不用一个数学公式,采用较为通俗的语言深入浅出的阐述傅里叶变换的含义.意义及方法,希望大家可以更加亲近傅里叶变换,用好傅里叶变换. 一伟大的傅里叶.伟大的

芯片业难逃重组厄运?

这段时间,有关芯片产业的消息甚嚣尘上,内容涉及手机.PC.游戏,乃至智能汽车,先是微软透露有兴趣收购AMD,再有联发科看中了NVIDI,而就在一个月前,英特尔以每股54美元的价格收购了Altera,国产芯片业不断地传出利好:政策方面铁了心要扶持芯片业发展,估计是领导再也不想看别人脸色了.上述产业链内的收购,有些已经成为现实,有些仍在传闻,但无不预示着芯片产业链的重组趋势,这个趋势和企业自身有着密不可分的关系,同时取决于整个终端产业链的发展,事实上,仅一张移动互联网就让英特尔.高通的境遇判若云泥,

[转]使用sklearn进行集成学习——理论

转:http://www.cnblogs.com/jasonfreak/p/5657196.html 目录 1 前言2 集成学习是什么?3 偏差和方差 3.1 模型的偏差和方差是什么? 3.2 bagging的偏差和方差 3.3 boosting的偏差和方差 3.4 模型的独立性 3.5 小结4 Gradient Boosting 4.1 拟合残差 4.2 拟合反向梯度 4.2.1 契机:引入损失函数 4.2.2 难题一:任意损失函数的最优化 4.2.3 难题二:无法对测试样本计算反向梯度 4.