第一行給出l,n,m。分別代表河水的寬,河水中有n個石頭,和青蛙最多能跳m次。。
青蛙只能跳到石頭上,且預設可以跳無限遠。
下面給出n個石頭的座標。
問:要求使得青蛙跳過河的這次所有的跳躍中,跳躍最遠的那次距離盡可能最小,輸出這個值
1、如果m > n,那一定是兩兩相距最遠的那個距離。
2、資料很大,暴力去查詢每乙個跳躍的方案肯定會超時。
3、用二分去查詢乙個單次跳躍的最大距離,看以這個距離能否完成。直到找到最小的那個數
二分的上邊界是河水寬 l 。
#include #include using namespace std;
const int maxn = 1e5*5+10;
int l,n,m;
int a[maxn];
bool judge(int dis)
if(step > m) return false;
return true;
}int bs(int l, int r)
return l;
}int main()
if(m > n)
cout << maxd << endl;
//對每次需要跳的最大距離進行二分
//顯然,如果每個石頭都跳,那麼最大距離就是兩個相鄰的最遠石頭的距離
// 如果一次跳過,那就是l
else
}return 0;
}
hdu 4004 二分 2011大連賽區網路賽D
題意 乙個長為l的河,中間有n個石子,小青蛙需要跳少於m次過河,判斷小青蛙每次跳躍最大距離的最小值 最大值最小,用二分 sample input 6 1 2 225 3 3112 18sample output411 2015 07 27 備戰區域賽專題 1 include2 include3 in...
POJ 3258青蛙過河 二分答案
description 有一條寬度為l 1 l 1,000,000 的河。河中間有n 0 n 20000 塊石頭,青蛙從河西岸經過這n個石塊後,順利跳到了河的東岸。設河中間每個石塊距離西岸的距離為di 其中di大於0小於l 注意 di是距離起始河岸的距離。小明閒著沒事,想移掉河中間的m 0 m n ...
二分 青蛙遊戲
time limit 1 sec memory limit 128 mb submit 332 solved 137 submit status web board 青蛙王國運動會開始了,最受歡迎的遊戲是鐵蛙三項賽,其中一項是跳躍過河專案。這個專案需要青蛙運動員通過跳躍過河。河的寬度是l。在河面上有...