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

2014-11-23 22:25:57 ? 作者: ? 浏览: 5
思路:函数 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< 
  


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: