Codevs 4768 跳石头 NOIP2015 DAY2 T1

2023-12-25 16:39
文章标签 day2 石头 codevs noip2015 t1 4768

本文主要是介绍Codevs 4768 跳石头 NOIP2015 DAY2 T1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4768 跳石头
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
传送门
题目描述 Description
一年一度的“跳石头”比赛又要开始了!
这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。
为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走M块岩石(不能移走起点和终点的岩石)。
输入描述 Input Description
输入文件名为 stone.in。
输入文件第一行包含三个整数L,N,M,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。
接下来N行,每行一个整数,第i行的整数Di(0 < Di < L)表示第i块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。
输出描述 Output Description
输出文件名为stone.out。
输出文件只包含一个整数,即最短跳跃距离的最大值。
样例输入 Sample Input
25 5 2
2
11
14
17
21
样例输出 Sample Output
4
数据范围及提示 Data Size & Hint
对于20%的数据,0≤M≤N≤10。 对于50%的数据,0≤M≤N≤100。
对于50%的数据,0≤M≤N≤100。
对于100%的数据,0≤M≤N≤50,000,1≤L≤1,000,000,000。

/*
二分答案+检验. 
显然ans必定在[0,len]里,
sort后二分ans 再检验可行解.
△注意处理:与前边可行石头比较,
相当于移走了石头.
*/
#include<bits/stdc++.h>
#define MAXN 50001
using namespace std;
int a[MAXN],n,m,len;
bool jd(int x)
{int sum=0,k=0;for(int i=1;i<=n+1;i++){if(a[i]-a[k]<x) sum++;else k=i;//△here.
}if(sum>m) return 0;else return 1;
}
int erfen(int l,int r)
{int mid;while(r-l>1){mid=(l+r)>>1;if(jd(mid)) l=mid;else r=mid;}return l;
}
int main()
{cin>>len>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+n+1);a[0]=0,a[n+1]=len;cout<<erfen(0,len);return 0;
}

这篇关于Codevs 4768 跳石头 NOIP2015 DAY2 T1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/536195

相关文章

Java预备知识 - day2

1.IDEA的简单使用与介绍 1.1 IDEA的项目工程介绍 Day2_0904:项目名称 E:\0_code\Day2_0904:表示当前项目所在路径 .idea:idea软件自动生成的文件夹,最好不要动 src:src==sourse→源,我们的源代码就放在这个文件夹之内 Day2_0904.iml:也是自动生成的文件,不要动 External Libraries:外部库 我这

T1打卡——mnist手写数字识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.定义GPU import tensorflow as tfgpus=tf.config.list_physical_devices("GPU")if gpus:gpu0=gpus[0]tf.config.experimental.set_memort_groth(gpu0,True) #设置GPU现存用量按需

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

力扣1049-最后一块石头的重量II(Java详细题解)

题目链接:1049. 最后一块石头的重量 II - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包,所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话,建议可以去学一学,01背包问题可以说是背包问题的基础。 如果大家感兴趣,我后期可以出一篇专门讲解01背包问题。 dp五部曲。 1.确

【为项目做准备】Linux操作系统day2

这两天学校的事情总压着,day2拖了好几天..day2内容是进程数据结构 进程数据结构信号处理任务状态进程调度运行统计信息进程亲缘关系进程权限用户和组标识符(IDs)linux capabilities 内存管理文件与文件系统用户态与内核态用户态与内核态的转换函数调用栈内核栈和task_struct的关系 进程数据结构 进程or线程,在内核中,统一叫任务(Task),由一个统

Android智能家居实训day2

设置使用的布局文件 setContentView(R.layout.filename);,之后使用布局嵌套,一个布局内部可以嵌套另一个布局,内部的布局相当于外部布局的一个子控件,可以把它当作一个整体来操作,例如在今天的八宫格使用布局嵌套的时候,每一个格子是一个线性布局布局内使用垂直方向,而每两个布局作为一行,一共四行,这样就再拿一个布局框起来使用水平方向最后再把这四个布局用垂直方向。在布局之间分配

代码随想录算法训练营第36天|1049. 最后一块石头的重量、494. 目标和、474.一和零

目录 1049. 最后一块石头的重量 II1、题目描述2、思路3、code4、复杂度分析 494. 目标和1、题目描述2、思路3、code4、复杂度分析 474. 一和零1、题目描述2、思路3、code4、复杂度分析 1049. 最后一块石头的重量 II 题目链接:link 1、题目描述 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块

算法---------宝石与石头

题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = "ZZ"输出:

算法训练营——day2数组部分例题

1 移除元素-力扣27(简单) 1.1 题目: 移除元素1 1.2 思路及解法 只能覆盖,不能删除 暴力遍历解法 class Solution {public int removeElement(int[] nums, int val) {int size=nums.length;for(int i=0;i<size;i++){if(nums[i]==val){for(int j=

信息学奥赛初赛天天练-80-NOIP2015普及组-基础题5-错位排列、二叉树、完全二叉树、叶子节点、完全二叉树叶子节点

NOIP 2015 普及组 基础题5 21 重新排列 1234使得每一个数字都不在原来的位置上,一共有( )种排法 22 一棵结点数为 2015的二叉树最多有( )个叶子结点 2 相关知识点 1) 错位排列 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n) 错排问题最早被尼古拉·伯努利和欧拉研究