HDU 4004 The Frog's Games [2011 大连网络赛]
2011-09-06 16:58
351 查看
题意:
青蛙过河,河的宽度是L,给出n个石头的坐标,不存在同一坐标的两个石头( two stone appear in one place is impossible),青蛙最多跳m次,求青蛙应该跳的最大距离中的最小距离。
分析:
二分
//AC CODE:
青蛙过河,河的宽度是L,给出n个石头的坐标,不存在同一坐标的两个石头( two stone appear in one place is impossible),青蛙最多跳m次,求青蛙应该跳的最大距离中的最小距离。
分析:
二分
//AC CODE:
#include <iostream> #include<algorithm> #include <cstdio> using namespace std; int L,n,m; int dis[500005]; int is_ok(int mid)//过河需要跳的最小次数 { int cnt=0,from=0; for(int i=0; i<=n; i++) { if(dis[i]-from<=mid && dis[i+1]-from>mid) { from=dis[i]; cnt++; } } //cout<<mid<<" "<<cnt<<endl; return cnt; } int main() { int i,mid,ans,maxn; while(scanf("%d %d %d",&L,&n,&m)!=EOF) { for(i = 0 ; i < n ; i ++) scanf("%d",&dis[i]); dis =L; maxn=-1; sort(dis,dis+n+1); for(i=1; i<=n; i++) if(maxn<dis[i]-dis[i-1]) maxn=dis[i]-dis[i-1]; dis[n+1]=2*L;//保证过不了这一点 int beg=maxn,end=L; while(beg<=end) { mid=(beg+end)>>1; if(is_ok(mid)<=m)// <= { end=mid-1; ans=mid; } else// > { beg=mid+1; } } printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU 4004 - The Frog\'s Games 第36届ACM/ICPC亚洲大连赛区网络赛
- Hdu 4004 The Frog's Games(二分)
- hdu 4004 The Frog's Games
- hdu 4004 The Frog's Games (二分+贪心)
- hdu 4004 The Frog's Games (二分+贪心)
- HDU 4004 The Frog's Games(二分)
- HDU 4004 The Frog's Games
- hdu 4004 The Frog's Games 【二分】
- HDU 4004 The Frog's Games(二分)
- hdu 4004 The Frog's Games ( 二分+贪心 )
- HDU 4004 The Frog's Games(二分)
- HDU 4004 The Frog's Games(基本算法-贪心,搜索-二分)
- HDU 4004 The Frog's Games(2011年大连网络赛 D 二分+贪心)
- HDU_4004_The frog's game_二分搜索
- 4004 The Frog's Games --二分+贪心
- hdu 4002 Find the maximum 2011 大连网络赛 1002 Find the maximum
- HDU 4006 The kth great number [2011 大连网络赛] [AVL树解法]
- hdu 4004 The Frog's Games 二分查找
- HDU 4004(The Frog's Games) 二分查找求答案
- hdu 4004 二分 2011大连赛区网络赛D