二分 HDU 4004 青蛙過河

2021-08-25 19:21:28 字數 754 閱讀 5422

第一行給出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。在河面上有...