hdoj 4004 The Frog's Games(二分+搜索+剪枝)

来源:互联网 发布:jackson json转对象 编辑:程序博客网 时间:2024/04/30 07:07

             昨天比赛,我做出来了……这说明一个啥问题呢——这道题很水……

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int a[500001];int L, n;bool Check(  int mid, int m){int i;int dis=0;if( mid<a[0]) return 0;for(i=1; i<=n; i++){if( mid<a[i]-dis && mid>=a[i-1]-dis){m--;dis=a[i-1];}if( mid<a[i]-dis ) return 0;if( m<=0) return 0;     }if( a[n]-dis<=mid )return 1;else return 0;}int main(){ int m;int start, end, mid;int ans;int i;while(scanf("%d %d %d",&L, &n, &m)!=EOF ){for(i=0; i<n; i++)scanf("%d",a+i);a[n]=L;sort(a, a+n);start=0; end=L;while(start<=end){mid=(start+end)/2;if( Check(mid, m) ){ans=mid;end=mid-1;}else start=mid+1;}printf("%d\n", ans);} }


原创粉丝点击