http://172.20.6.3/Problem_Show.asp?id=1452
很简单的二分,最开始以为是优先队列,想了想发现优先队列是有情况不能达到最优的,所以二分+贪心处理,在贪心check的时候想得有点复杂(或者说有漏洞),调了几次才过。
写代码的时候果然不能硬莽,不思考乱莽只能随机30,70,90分,没法ac。

代码

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
using namespace std;
const int maxn=;
int z,m,n;
int a[maxn]={},tot=;
int check(int x){
int y=;int w=,hug=z,t1=z;
for(int i=;i<=n+;i++){
if(a[i]-a[y]>=x){
hug=min(hug,t1);
t1=a[i]-a[y];
w+=(i-y-);y=i;
}
}if(n+!=y){
w+=n+-y;
if(y==)w--;
t1+=a[n+]-a[y];
hug=min(hug,t1);
}
if(w==m){
if(hug<x) return ;
else return ;
}
else if(w>m) return ;
else return ;
}
int doit(){
int l=,r=z;
while(l+<r){
int mid=(l+r)/;
int w=check(mid);
if(!w)r=mid-;
else l=mid;
}int w=check(r);
if(!w)return l;
else return r;
}
int main(){
//freopen("wtf.in","r",stdin);
scanf("%d%d%d",&z,&n,&m);
tot=n+;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}a[n+]=z;
printf("%d\n",doit());
return ;
}

JZYZOJ1452 NOIP2015_提高组Day2_1_跳石头的更多相关文章

  1. 【NOIP2015提高组】跳石头

    https://www.luogu.org/problem/show?pid=2678 最小值最大问题,二分答案.每次检查是否能仅移走m块岩石使得所有跳跃距离均大于等于mid. #include &l ...

  2. 【NOIP】提高组2015 跳石头

    [算法]二分查找 [题解]最小值最大化问题. 从1..l内二分枚举答案,将每个答案最少移开的石头数与最大移开数m比较. 精简写法学自:https://vijos.org/p/1981/solution ...

  3. NOIP2015_提高组Day2_3_运输计划

    这题思路很简单: 先对每个询问求距离,对距离由大到小排序, 二分最小距离,验证是否可行,验证时用差分处理: #include<iostream> #include<cstring&g ...

  4. 洛谷 P2678 & [NOIP2015提高组] 跳石头

    题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...

  5. 【二分查找】 跳石头NOIP2015提高组 D2T1

    [二分查找]跳石头NOIP2015提高组 D2T1 >>>>题目 [题目描述] 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石 ...

  6. [NOIP2015] 提高组 洛谷P2678 跳石头

    题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不 ...

  7. NOIP 2015复赛提高组Day2 T1==Codevs 4768 跳石头

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold  题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中 ...

  8. NOIP2015提高组 跳石头 ACM-ICPC2017香港 E(选择/移除+二分答案)

    跳石头 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 NN  ...

  9. 跳石头|河中跳房子|NOIP2015提高组T4|二分法

    喵 提交地址:http://codevs.cn/problem/4768/ 题目: 题意:自己看 思路: 1.读入各个石头数据 2.直接二分答案: 枚举一个石头i和一个石头j,要求i和j之间的距离为m ...

随机推荐

  1. 【洛谷 P2761】 软件补丁问题(状态压缩,最短路)

    题目链接 第四题. 初看题目很懵,网络流这么厉害的吗,毫无头绪去看题解.. 所以这和网络流有什么关系呢? 把规则用二进制保存下来,然后跑最短路救星了. 在线跑,离线连边太慢了. (以后干脆不管什么题直 ...

  2. 【Linux学习】nohup后台运行程序以及输出重定向

    Linux有两种命令使程序后台运行 第一种:支持后台运行,但是关闭终端的话,程序也会停止 command & 第二种:支持后台运行,关闭终端后,程序也会继续运行 nohup command & ...

  3. 宿主机mount虚拟机镜像文件

    转载 mount挂载虚拟机镜像文件 使用mount挂载ubuntu虚拟机所在的img文件的时候,执行: “sudo mount -o loop xxx.img /mnt/xxx”, 系统提示: “mo ...

  4. 64_k1

    KoboDeluxe-0.5.1-22.fc26.x86_64.rpm 13-Feb-2017 22:11 1626454 k3b-17.04.1-1.fc26.x86_64.rpm 25-May-2 ...

  5. 64_j2

    jetty-websocket-server-9.4.3-3.v20170317.fc26.n..> 14-Apr-2017 12:03 62034 jetty-websocket-servle ...

  6. 调用start()与run()的区别

    1.调用start()方法: 通知“线程规划器”当前线程已经准备就绪,等待调用线程对象的run()方法.这个过程就是让系统安排一个时间来调用Thread中的run()方法,使线程得到运行,启动线程,具 ...

  7. GOLANG编译安装

    GO这个编译器搞的比较混乱,GO本身是汇编+C开发出来的,后来因为觉得自己牛逼,然后用GO语言又写了一次编译器,所以中途抛弃了C,不过这种做法好与不好很难说,go真的这么有自信用自己语言写自己的编译器 ...

  8. 关于:TypeConverter 无法从 System.String 转换

    TypeConverter 无法从 System.String 转换 处理方法: 1: [DX Support Team: The issue was resolved by its Owner] i ...

  9. tornado 模版继承 函数和类的调用

    模版继承.函数和类的调用 目录结构 lesson5.py # -*- coding:utf-8 -*- import tornado.web import tornado.httpserver imp ...

  10. 在一个Ubuntu系统上配置Apache支持多个站点

    查看原文请访问:http://codewenda.com/ubuntu16-04%E9%85%8D%E7%BD%AEapache%E6%94%AF%E6%8C%81%E5%A4%9A%E4%B8%AA ...