P2678 [NOIP2015 提高组] 跳石头

news/2025/2/11 22:48:14/

来自 <[NOIP2015 提高组] 跳石头 - 洛谷>

题意:

 题目就是说有在起点和终点里面有5个石头,现在让你移出两个石头,要移哪两个可以满足最后最短距离最长。假如现在要移11位置和14位置的两块石头,最后的最短距离是2,而如果移的是2位置和14位置的两块石头,最后的最短距离是4。因此我们认为4是我们的最长最短距离。

思路:

而如果我们正面去想如何移是一件很难的事,我们可以从最短距离的角度去思考。我们知道最短距离的长度无非就是025这个区间内的,所以我们可以暴力假设,如果最短距离为1可不可以成立,如果最短距离是2可不可以成立…….

但我们可以直接二分取中间值来假设,假如最短距离取(0+25)/2=12;然后扫描整个装着石头的数组,如果距离小于12,那么我们就取石头,然后计数,如果计数值超过题目规定的,说明这个最短距离长度不满足。所以r=mid-1;反之,如果成立,我们会继续扩大我们的最短距离,毕竟题目中要的是最长的。l=mid。

 代码:
import java.util.Scanner;public class Main {public static int L;public static int N;public static int M;public static int[] a=new int[50010];public static void main(String[] args) {Scanner scan=new Scanner(System.in);L=scan.nextInt();N=scan.nextInt();M=scan.nextInt();a[0]=0;a[N+1]=L;for(int i=1;i<=N;i++){a[i]=scan.nextInt();}int l=0,r=L;while(l<r){int mid=(l+r+1)/2;if(judge(mid)){//如果成立,我们会继续扩大我们的最短距离,毕竟题目中要的是最长的l=mid;}else {r=mid-1;}}System.out.println(l);}public static boolean judge(int shortDistance){int now=0;int cnt=0;for(int i=1;i<=N+1;i++){if(a[i]-a[now]<shortDistance){//扫描整个装着石头的数组,如果距离小于12,那么我们就取石头,然后计数cnt++;}else {now=i;}}if(cnt>M){//如果计数值超过题目规定的,说明这个最短距离长度不满足return false;}else {return true;}}
}


http://www.ppmy.cn/news/1157893.html

相关文章

OpenCV11-图像的模版匹配

OpenCV11-图像的模版匹配 图像的模版匹配 图像的模版匹配 前面通过图像直方图反向投影的方式在图像中寻找模版图像&#xff0c;由于直方图不能直接反映图像的纹理&#xff0c;因此&#xff0c;如果两幅不同的模版图像具有相同的直方图分布特性&#xff0c;那么在同一幅图中对着…

[Leetcode学习-C语言]Two Sum

题目连接&#xff1a;LeetCode - The Worlds Leading Online Programming Learning Platform leetcode写C真的很多坑...... 用 hash 拉链法 构造hash函数&#xff0c;才能写这么题小题。 typedef struct Node { // 得自己做个hash 拉链法struct Node *next;int val;int sign…

信息解码(Message Decoding, ACM/ICPC World Finals 1991, UVa 213)rust解法

考虑下面的01串序列&#xff1a; 0, 00, 01, 10, 000, 001, 010, 011, 100, 101, 110, 0000, 0001, …, 1101, 1110, 00000, … 首先是长度为1的串&#xff0c;然后是长度为2的串&#xff0c;依此类推。如果看成二进制&#xff0c;相同长度的后一个串等于前一个串加1。注意上述…

解决Armbian插有线才能连接无线网

问题 Armbian插一下有线才能自动连接无线网。 RK3228电视盒子&#xff0c;刷了armbian&#xff0c;机器有无线网卡和有线网卡。 在插上有线的情况下开机&#xff0c;无线也可以访问。拔掉有线&#xff0c;无线正常。 在没插有线的情况下&#xff0c;无线不能自动连接&#xff…

高效工具类软件使用

高效工具类软件使用 目录概述需求&#xff1a; 设计思路实现思路分析1.Leanote2.Obsidian 的使用 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for…

ArcGIS笔记8_测量得到的距离单位不是米?一经度一纬度换算为多少米?

本文目录 前言Step 1 遇到测量结果以度为单位的情况Step 2 简单的笨办法转换为以米为单位Step 3 拓展&#xff1a;一经度一纬度换算为多少米 前言 有时我们会遇到这种情况&#xff0c;想在ArcGIS中使用测量工具测量一下某一段距离&#xff0c;但显示的测量结果却是某某度&…

ffmpeg的重采样计算

最近在看ffmpeg的重采样计算逻辑&#xff0c;有一句话没大看懂 dst_nb_samples av_rescale_rnd(swr_get_delay(swr_ctx, src_rate) src_nb_samples, dst_rate, src_rate, AV_ROUND_UP); &#xff0c;各种请教之后&#xff0c;记录如下。 重采样后的总样本数 为什么要涵盖重采…

探索数字时代的核心:服务器如何塑造未来并助你成就大业

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…