20181029noip模拟赛T1
1、借书
【问题描述】
Dilhao一共有n本教科书,每本教科书都有一个难度值,他每次出题的时候都会从其中挑两本教科书作为借鉴,如果这两本书的难度相差越大,Dilhao出的题就会越复杂,也就是说,一道题的复杂程度等于两本书难度差的绝对值。
这次轮到ldxxx出题啦,他想要管Dilhao借m本书作为参考去出题,Dilhao想知道,如果ldxxx在Dilhao给出的m本书里挑选难度相差最小的两本书出题,那么ldxxx出的题复杂程度最大是多少?
【输入格式】
第一行是n和m。
接下来的n行,每行一个整数ai表示第i本书的难度。
【输入格式】
一个整数为ldxxx出的题复杂程度的最大值。
【输入样例】
6 3
5
7
1
17
13
10
【输出样例】
7
【样例解释】
Dilhao给了ldxxx难度为1,10,17的三本书,ldxxx挑选难度为10和17的两本书,出题复杂度为7;
如果Dilhao给出其他任何三本书,其中的两本书难度差的最小值都小于7,所以ldxxx出题最大的复杂程度为7。
【数据说明】
对于 30%的数据: 2<=n<=20;
对于 60%的数据: 2<=n<=1000;
对于 100%的数据: 2<=n<=100000, 2<=m<=n, 0<=ai<=1000000000。
思路:
一眼题
对于原数组,我们可以将它差分
然后二分一个答案出来
扫一遍原序列验证即可
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rii register int i
#define rij register int j
using namespace std;
int n,m,x[],cha[];
bool cmp(int lk,int kl)
{
return lk<kl;
}
bool check(int val)
{
int jsq=,ch=;
for(rii=;i<n;i++)
{
ch+=cha[i];
if(ch>=val)
{
jsq++,ch=;
}
}
if(jsq>=m-)
{
return true;
}
return false;
}
int main()
{
freopen("margin.in","r",stdin);
freopen("margin.out","w",stdout);
scanf("%d%d",&n,&m);
int r=,l=;
for(rii=;i<=n;i++)
{
scanf("%d",&x[i]);
r=max(r,x[i]);
}
sort(x+,x+n+,cmp);
for(rii=;i<n;i++)
{
cha[i]=x[i+]-x[i];
}
while(l<=r)
{
if(r-l==)
{
if(check(r)==true)
{
l=r;
}
break;
}
int mid=(l+r)/;
if(check(mid)==true)
{
l=mid;
}
else
{
r=mid;
}
}
cout<<l;
}
20181029noip模拟赛T1的更多相关文章
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- 20180610模拟赛T1——脱离地牢
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...
- NOIP欢乐模拟赛 T1 解题报告
小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...
- [模拟赛] T1 高级打字机
Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小 ...
- 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...
- [NOIP2018校模拟赛]T1 阶乘
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...
- [NOIP2018校模拟赛]T1聚会 party
题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...
- 【2019.8.15 慈溪模拟赛 T1】插头(plugin)(二分+贪心)
二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能 ...
- 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)
打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...
随机推荐
- js实现数组内数据的上移和下移
var swapItems = function(arr, index1, index2){ arr[index1] = arr.splice(index2,1,arr[index1])[0] ret ...
- VS.Net开发必备,让您的代码自动收缩,如何实现!
一年前,不知在哪里看到这个开发辅助插件,就装上了,之后一直不知不觉得用着,有一天重装了系统,这插件不见了,再也记不起他的名字, 在网上搜索"自动收缩代码","VS开发必备 ...
- Android通过浏览器打开app页面并且传递值
最近公司有个需求,要求从第三方网页端打开一个网页,然后在网页中点击“下载”,“打开”按钮,在app端进行下载和打开操作.这里记录下方法. 首先,网页和app页面进行交互,其实会很快想到JS交互,但是现 ...
- 使用Mist部署Contract到Rinkeby以太坊网络
本文使用MyEthWallet新建一个账号,并导入到Mist中,然后部署Contract到Rinkeby网络使用MyEthWallet新建账号的好处是除了JSON文件之外,还能得到一张它生成的pdf( ...
- 微软在Build 2016开发者大会中发布 “认知服务”,牛津计划有正式名字啦!
2016年3月30日:微软在Build 2016开发者大会中发布“认知服务”. 在Build 2016开发者大会中,微软发布了新的智能服务:微软认知服务(Microsoft Cognitive Ser ...
- pt-duplicate-key-checker使用
pt-duplicate-key-checker工具可以检测表中重复的索引,对于一些业务量很大的表,而且开发不规范的情况下有用.基本用法: 看一下我们的测试表: mysql> desc new_ ...
- tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].
tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].多半情况是找不到jar包 解 ...
- 抓取windows系统进程
最近在开发辅流分享界面,然后之前的windows编程的代码都忘记了,翻到了一个博客,具体的还是去msdn去查函数,这个是入门的链接如下: http://blog.csdn.net/zdragon200 ...
- Spring学习总结之---装配Bean
Spring配置的可选方案 前言:Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,作为开发人员,你需要告诉Spring容器要创建那些Bean,以哪种方式创建,并且如何将 ...
- C与C++混编
了解一下C与C++如何合作,gcc和g++编译出来的东西有什么区别. 工具使用 objdump是个好工具,可以用于查看.o文件的内容,也可以查看可执行文件的内容. 查看符号表 objdump -t f ...