当前位置: 首页 > news >正文

泉州最专业微信网站建设公司做知乎网站要多少钱

泉州最专业微信网站建设公司,做知乎网站要多少钱,阿里巴巴个人网站怎么做,1688黄页大全进口洛谷 P2678 [NOIP2015 提高组] 跳石头 (Java) 传送门:P2678 [NOIP2015 提高组] 跳石头 题目: [NOIP2015 提高组] 跳石头 题目背景 NOIP2015 Day2T1 题目描述 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行&…

洛谷 P2678 [NOIP2015 提高组] 跳石头 (Java)

传送门:P2678 [NOIP2015 提高组] 跳石头

题目:

[NOIP2015 提高组] 跳石头

题目背景

NOIP2015 Day2T1

题目描述

一年一度的“跳石头”比赛又要开始了!

这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N N N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。

为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M M M 块岩石(不能移走起点和终点的岩石)。

输入格式

第一行包含三个整数 L , N , M L,N,M L,N,M,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。保证 L ≥ 1 L \geq 1 L1 N ≥ M ≥ 0 N \geq M \geq 0 NM0

接下来 N N N 行,每行一个整数,第 i i i 行的整数 D i ( 0 < D i < L ) D_i\,( 0 < D_i < L) Di(0<Di<L), 表示第 i i i 块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。

输出格式

一个整数,即最短跳跃距离的最大值。

样例 #1

样例输入 #1

25 5 2 
2
11
14
17 
21

样例输出 #1

4

提示

输入输出样例 1 说明

将与起点距离为 2 2 2 14 14 14 的两个岩石移走后,最短的跳跃距离为 4 4 4(从与起点距离 17 17 17 的岩石跳到距离 21 21 21 的岩石,或者从距离 21 21 21 的岩石跳到终点)。

数据规模与约定

对于 20 % 20\% 20%的数据, 0 ≤ M ≤ N ≤ 10 0 \le M \le N \le 10 0MN10
对于 50 % 50\% 50% 的数据, 0 ≤ M ≤ N ≤ 100 0 \le M \le N \le 100 0MN100
对于 100 % 100\% 100% 的数据, 0 ≤ M ≤ N ≤ 50000 , 1 ≤ L ≤ 1 0 9 0 \le M \le N \le 50000,1 \le L \le 10^9 0MN50000,1L109

分析:

题目要我们求最短跳跃距离(1 <= ans <= L),我们可以二分起点到终点的长度获得答案。

在每次二分时,我们定义now(当前所在的位置)和step(搬走石头的数量)。

如果每次跳跃 a[i]-now 的距离 大于 mid,说明 a[i] 这块石头需要搬走;否则我们就可以跳到这块石头上,更新 now 。

如果step 大于 m ,说明需要搬走的石头太多,我们不能跳跃这么多,缩小跳跃距离,更新r = mid-1;否则,需要搬走的石头 <= m,说明我们至少可以跳跃这么多 ans = mid,继续搜索更大跳跃距离,更新 l = mid +1。

代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {   Scanner sc = new Scanner(System.in);int L = sc.nextInt();int n = sc.nextInt();int m = sc.nextInt();int [] a = new int [n+10];for(int i = 1;i <= n;i++) a[i] = sc.nextInt();a[n+1] = L;int l = 0;int r = L;int ans = 0;// 二分获得跳跃的最小距离while(l <= r) {// 跳跃的距离int mid = (l+r)/2;// now表示我现在的位置,step表示搬走石头的数量int now = 0;int step = 0;for(int i = 1;i <= n+1;i++) {// 二分小于mid,这块石头要搬走if(a[i]-now < mid) step++;// 跳到这块石头上else now = a[i];}// 搬走的石头大于m,不可以if(step > m) {r = mid-1;}else {l = mid+1;ans = mid;}//System.out.printf("l r ans:%d %d %d\n",l,r,ans);}System.out.println(ans);}
}
http://www.15wanjia.com/news/160057.html

相关文章:

  • .flv 网站播放dhl做运单的网站
  • 行业网站建设深圳公司房地产网络营销方式
  • php做企业网站管理系统江西网络推广外包
  • 黑龙江省建设银行网站关键词投放
  • 如何给给公司建立网站在线crm视频观看
  • 广州白云网站建设公司中国企业网站建设现状
  • 高清免费素材网站沈阳网站排名公司
  • 个人网站的成本淄博刚刚发布紧急通知
  • 做平面设计一般上哪个网站参考vps主机支持WordPress
  • 快要到期的域名网站如何做外卖网站
  • 网站自己的工业设计考研比较好的学校
  • 驻马店营销型网站建设建设部网站注册中心
  • 制作网站联系方式网站域名被黑
  • 临沂外贸国际网站建设广州互联网
  • 公司网站制作制作wordpress 首页判断
  • 巨鹿网站建设公司阿里云建站流程
  • 做海报的软件app免费如何进行网站优化设计
  • 有做微推客的网站吗建筑工人app
  • 全国网站建设哪家好网站焦点图素材
  • 网站开发教学网站美工网站
  • 计算机网站建设实训总结网站建设重要意义
  • cms开发语言有哪些厦门网站优化公司
  • 网站建设售后服务国外做地铁设计的公司网站
  • 造一个官方网站个人备案网站可以做淘宝客吗
  • 网站建设费用要多少做网站需要什么
  • 海南网站建设制作全网营销心得体会
  • 青岛做网站哪家强怎么写app程序
  • 免费建博客网站wordpress根据分类文章清单
  • 996建站网站制作苏州建设银行官方网站
  • 网信办抓好网站建设微网站如何做横幅链接