poj 3258 River Hopscotch (二分搜索---最大化最小值)

2014-11-23 22:25:57 · 作者: · 浏览: 6
思路:函数 can(int x)判断 当前的距离x能不能得到。用贪心的策略来选取N-M个点来看是否满足。
注意边界条件和边界数据:
#include  
#include  
#include  
#include  
using namespace std;  
const int MAXN=50005;  
int L,N,M,d[MAXN];  
bool can(int mid)  
{  
    int num=N-M;  
    int last=0;  
    for(int i=0;iN) return 0;  
        last=cur;  
    }  
    return 1;  
}  
int main()  
{  
        while(cin>
>L>>N>>M) { if(N+M==0) {cout<1) { int mid=(lhs+rhs)>>1; if(can(mid)) lhs=mid; else rhs=mid; } cout<