#include#includeusing
namespace
std;
intm,n;
long
long l,map[50015
],left,right,mid;
intmain()
for(int i=1;i<=n;i++)
scanf(
"%lld
",&map[i]);
map[n+1]=l;
left=0
;right=l;
while(left<=right)//
可以等於,left=3,right=4時,mid=3,再進行一次後mid=4
mid=(left+right)/2
; printf(
"mid=%lld\n
",mid);
int move=0,h=0
;
for(int i=1;i<=n+1;i++)
if(move<=m) //
如果發現石塊剛好滿足也要再往後找一找啊。。。萬一下個也可以
else
printf(
"left=%lld\n
",left);
printf(
"right=%lld\n
",right);
}printf(
"%lld
",left-1); //
為什麼不輸出left——因為看上面left=mid+1,而你二分的是mid---跳躍長度,顯然left+1後並沒***滿足條件(下乙個萬乙隻更改了right就跳出呢?)
return0;
}
跳石頭 題解
原題 洛谷題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走一些岩石,使得選...
二分 跳石頭
一定要學好程式設計。一年一度的 跳石頭 比賽又要開始了 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選 擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終 點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點。為了提...
跳石頭 二分答案
題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nnn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高...