二分 青蛙遊戲

2021-09-02 11:40:05 字數 871 閱讀 9640

time limit: 1 sec  memory limit: 128 mb

submit: 332  solved: 137

[submit][status][web board]

青蛙王國運動會開始了,最受歡迎的遊戲是鐵蛙三項賽,其中一項是跳躍過河專案。這個專案需要青蛙運動員通過跳躍過河。河的寬度是l。在河面上有直線排列的n個石頭。青蛙可以利用這些石頭跳躍過河,如果落入河中則失敗。青蛙們能夠跳躍的最多次數是m。現在鐵蛙門想要知道他們至少需要具備多大的跳躍距離,才能夠順利完成比賽。

輸入包含了多個測試樣例,測試樣例第一行包含了3個正整數l,n,m。接下來的i(i<=n)行中,第i表示第i個石頭距離起跳岸邊的距離,其中不存在兩個石頭距離相同的情況。

輸出乙個整數,表示鐵蛙要完成比賽需要具備的最低跳躍能力。

6 1 2 2 25 3 3 11 2 18

4 11

#include#includeusing namespace std;

int a[100005];

int l,n,m;

int judge(int x)

if(a[i]-a[los]>x)

}num++;

if(num>m)

else }

int main()

sort(a,a+n+1);

a[n+1]=l;

int r=l;

int l=0;

int mid;

while(l<=r)//二分尋找答案

else

} printf("%d\n",l);

}}

看題的時候終於有了點二分的想法,不過分的方式不太對,看過題解後才寫出來,非常好的二分題

二分 HDU 4004 青蛙過河

第一行給出l,n,m。分別代表河水的寬,河水中有n個石頭,和青蛙最多能跳m次。青蛙只能跳到石頭上,且預設可以跳無限遠。下面給出n個石頭的座標。問 要求使得青蛙跳過河的這次所有的跳躍中,跳躍最遠的那次距離盡可能最小,輸出這個值 1 如果m n,那一定是兩兩相距最遠的那個距離。2 資料很大,暴力去查詢每...

POJ 3258青蛙過河 二分答案

description 有一條寬度為l 1 l 1,000,000 的河。河中間有n 0 n 20000 塊石頭,青蛙從河西岸經過這n個石塊後,順利跳到了河的東岸。設河中間每個石塊距離西岸的距離為di 其中di大於0小於l 注意 di是距離起始河岸的距離。小明閒著沒事,想移掉河中間的m 0 m n ...

二分查詢 從酒桌遊戲看二分查詢演算法

給前端食堂加星標,吃好每一頓 觀感度 口味 孜然牛肉 本文已收錄在githubgithub.com geekhyt,感謝star。酒桌上曾經玩過這樣乙個小遊戲,遊戲規則是 主持人每次隨機從 1 1000 中選擇乙個數字,比如是 171。只有主持人自己知道並事先寫在紙條上留存,然後分別讓大家來猜,能夠...