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。只有主持人自己知道並事先寫在紙條上留存,然後分別讓大家來猜,能夠...