跳石头

原创 2016年05月31日 21:28:38

</pre></h1><h2 id="description" style="margin: 0.8em 0px; padding: 0px; box-sizing: border-box; color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px;"><span style="font-size:24px;"><a target=_blank name="t1" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>Description</span></h2><p style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; margin-top: 0px; margin-bottom: 1.1em; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box;">一年一度的“跳石头”比赛又要开始了! <br style="box-sizing: border-box;" />这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。 <br style="box-sizing: border-box;" />组委会已经选择好了两块岩石作为比赛起点和终点。 <br style="box-sizing: border-box;" />在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石)。 <br style="box-sizing: border-box;" />在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 <br style="box-sizing: border-box;" />为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳 跃距离尽可能长。 <br style="box-sizing: border-box;" />由于预算限制,组委会至多从起点和终点之间移走 M 块岩石(不能 移走起点和终点的岩石)。</p><hr style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; font-weight: bold; line-height: 35px; box-sizing: border-box; margin: 2em 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-top-color: rgba(128, 128, 128, 0.0980392);" /><h2 id="input" style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px; margin: 0.8em 0px; padding: 0px; box-sizing: border-box;"><span style="font-size:24px;"><a target=_blank name="t2" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>Input</span></h2><p style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; margin-top: 0px; margin-bottom: 1.1em; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box;">输入第一行包含三个整数 L,N,M,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。 <br style="box-sizing: border-box;" />接下来 N 行,每行一个整数,第 i 行的整数 Di(0 < Di < L)表示第 i 块岩石与起点的距离。 <br style="box-sizing: border-box;" />这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。</p><hr style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; font-weight: bold; line-height: 35px; box-sizing: border-box; margin: 2em 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-top-color: rgba(128, 128, 128, 0.0980392);" /><h2 id="output" style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px; margin: 0.8em 0px; padding: 0px; box-sizing: border-box;"><span style="font-size:24px;"><a target=_blank name="t3" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>Output</span></h2><p style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; margin-top: 0px; margin-bottom: 1.1em; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box;">输出只包含一个整数,即最短跳跃距离的最大值。</p><hr style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; font-weight: bold; line-height: 35px; box-sizing: border-box; margin: 2em 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-top-color: rgba(128, 128, 128, 0.0980392);" /><h2 id="sample-input" style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px; margin: 0.8em 0px; padding: 0px; box-sizing: border-box;"><span style="font-size:24px;"><a target=_blank name="t4" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>Sample Input</span></h2><blockquote style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; box-sizing: border-box; margin: 0px 0px 1.1em; padding: 15px 20px; border-left-width: 10px; border-left-style: solid; border-left-color: rgba(128, 128, 128, 0.0745098); background-color: rgba(128, 128, 128, 0.0470588); border-top-left-radius: 0px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 0px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box; line-height: 1.25;">25 5 2 <br style="box-sizing: border-box;" />2 <br style="box-sizing: border-box;" />11 <br style="box-sizing: border-box;" />14 <br style="box-sizing: border-box;" />17 <br style="box-sizing: border-box;" />21</p></blockquote><hr style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; font-weight: bold; line-height: 35px; box-sizing: border-box; margin: 2em 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-top-color: rgba(128, 128, 128, 0.0980392);" /><h2 id="sample-output" style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px; margin: 0.8em 0px; padding: 0px; box-sizing: border-box;"><span style="font-size:24px;"><a target=_blank name="t5" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>Sample Output</span></h2><blockquote style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; box-sizing: border-box; margin: 0px 0px 1.1em; padding: 15px 20px; border-left-width: 10px; border-left-style: solid; border-left-color: rgba(128, 128, 128, 0.0745098); background-color: rgba(128, 128, 128, 0.0470588); border-top-left-radius: 0px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 0px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box; line-height: 1.25;">4</p></blockquote><hr style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; font-weight: bold; line-height: 35px; box-sizing: border-box; margin: 2em 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-top-color: rgba(128, 128, 128, 0.0980392);" /><h2 id="hint" style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; line-height: 35px; margin: 0.8em 0px; padding: 0px; box-sizing: border-box;"><span style="font-size:24px;"><a target=_blank name="t6" style="box-sizing: border-box; color: rgb(12, 137, 207);"></a>HINT</span></h2><p style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; margin-top: 0px; margin-bottom: 1.1em; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box;">对于样例: <br style="box-sizing: border-box;" />将与起点距离为 2 和 14 的两个岩石移走后,最短的跳跃距离为 4(从与起点距离17 的岩石跳到距离 21 的岩石,或者从距离 21 的岩石跳到终点)。</p><p style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px; margin-top: 0px; margin-bottom: 1.1em; padding-top: 0px; padding-bottom: 0px; box-sizing: border-box;">对于20%的数据,0≤M≤N≤10。 <br style="box-sizing: border-box;" />对于50%的数据,0≤M≤N≤100。 <br style="box-sizing: border-box;" />对于100%的数据,0≤M≤N≤50000,1≤L≤1000000000。</p><div style="color: rgb(153, 153, 153); font-family: 'YaHei Consolas Hybrid', Consolas, 'Lucida Console', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace, 宋体; font-size: 14px; font-weight: bold; line-height: 21px;"><pre style="margin-top: 0px; margin-bottom: 0px; word-wrap: break-word; word-break: break-all; font-family: 'YaHei Consolas Hybrid', Consolas, 'Lucida Console', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace, 宋体; color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; background-color: rgb(255, 255, 255);"><pre name="code" class="cpp">#include<cstdio>
#include<cmath>
using namespace std;
int D[51000]={0},ans,L,N,M,mid;
int Del(int x,int y)
{
	int i=x;
	while(D[i]-D[x-1]<mid&&i<=y)
	{
		ans++;	i++;
	}
	return i;
}
int main()
{
	scanf("%d%d%d",&L,&N,&M);
	for(int i=1;i<=N;i++)	scanf("%d",&D[i]);
	D[N+1]=L;
	int l=0,r=0x7fffffff;
	while(l<r)
	{
		mid=ceil((l+r)/2.0);
		int x=1,y=N;
		ans=0;
		while(D[x]<mid)	{ans++;x++;}
		while(L-D[y]<mid&&x<=y){ans++;y--;}
		while(x<y)	x=Del(x+1,y);
		if(ans>M)	r=mid-1;
		else l=mid;
	}
	printf("%d",l);
	return 0;
}


</pre><span style="font-family:YaHei Consolas Hybrid, Consolas, Lucida Console, Bitstream Vera Sans Mono, Courier New, Courier, monospace, 宋体;color:#333333;"><span style="font-size: 14px; line-height: 21px;"></span></span>

NOIp2015 跳石头

一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NN 块岩石(不含起点和终点的...
  • Mr_Doublerun
  • Mr_Doublerun
  • 2016年05月23日 21:07
  • 2103

HDU 5037(Frog-贪心青蛙跳石子)

Frog Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total S...
  • nike0good
  • nike0good
  • 2014年10月01日 14:39
  • 1807

一排石头的游戏(取石头)C语言实现

问题描述: N块石头排成一行,每块石头有各自固定的位置。 两个玩家依次取石头,每个玩家可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不移位。 最后能将石头一次取光的玩家获胜。 ...
  • Zidane_2014
  • Zidane_2014
  • 2015年05月13日 09:46
  • 1125

POJ 2253 Frogger(青蛙跳石头)

http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K ...
  • shyazhut
  • shyazhut
  • 2016年08月24日 10:07
  • 171

【NOIP2015】day2_ 跳石头

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

【noip 2015】跳石头

一道sb题。。但来写一写我的体会。 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选...
  • DT_Kang
  • DT_Kang
  • 2017年08月07日 17:46
  • 124

洛谷 P2678 跳石头

二分
  • Rlt1296
  • Rlt1296
  • 2016年11月17日 09:53
  • 173

Noip2015 跳石头[vijos 1981]

NOIP 2015 提高组 Day 2 第一题
  • XY20130630
  • XY20130630
  • 2016年02月01日 09:28
  • 413

Noip2015 D2T1 跳石头

题目意思如上,求最短距离的最大值,即极小值的最大值,所以二分。 这一题,因为搬走的石头的个数不超过m就行,肯定是二分最小距离。 每次二分一个最小距离,从第一个石头到终点,如果当前石头足够跳过下一块石头...
  • klxwl
  • klxwl
  • 2016年10月18日 12:00
  • 142

Leetcode-403.Frog Jump(青蛙跳石头)

今天的题目是:Leetcode 403-青蛙跳 A frog is crossing a river. The river is divided into x units and at each ...
  • caoyan_12727
  • caoyan_12727
  • 2016年11月15日 20:05
  • 590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:跳石头
举报原因:
原因补充:

(最多只允许输入30个字)