zoukankan      html  css  js  c++  java
  • poj 2456 Aggressive cows (二分)

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int n,c;
    int a[100000+100];
    
    int solve(int m)
    {
        int ret=1;
        int i,j,k;
        int l=0,r;
        for(i=1;i<n;i++)
        {
            if(a[i]-a[l]>=m)
            {
                ret++;
                l=i;
            }
        }
        return ret;
    }
    
    /*
    bool solve(int x)  
    {  
        int cnt = 1, tmp = a[0];  
        for(int i = 1; i < n; i++)  
        {  
            if(a[i] - tmp >= x)  
            {  
                cnt++;  
                tmp = a[i];  
                if(cnt >= c) //可以放下C头牛  
                    return true;  
            }  
        }  
        return false;  
    } */
    
    
    int erfen(int l,int r)
    {
        //printf("%d......
    ",solve(2));
        while(l<=r)
        {
            int m=(l+r)>>1;
            //printf("%d %d %d
    ",l,m,r);
            //printf("sol %d %d
    ",m,solve(m));
            if(solve(m)>=c)
            //if(solve(m))
            {
                l=m+1;
            }
            else //if(solve(m)<c)
            {
                r=m-1;
            }
            //printf("%d %d..
    ",l,r);
        }
        //if(solve(r)==c) return r;
        return l;
    }
    
    int main()
    {
        int i,j,k;
        while(scanf("%d%d",&n,&c)!=EOF)
        {
            for(i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            sort(a,a+n);
           
            
            int ans;
            ans=erfen(0,a[n-1]-a[0]);
            printf("%d
    ",ans-1);
        }
        return 0;
    }
    
  • 相关阅读:
    [HAOI2008]下落的圆盘
    10.2 上午 考试
    10.1 考试 ..........
    9.29 考试
    博弈论笔记
    bzoj_1022: [SHOI2008]小约翰的游戏John
    课程总结第十五周
    团队冲刺第二阶段09
    团队冲刺第二阶段08
    对搜狗输入法的评价
  • 原文地址:https://www.cnblogs.com/sola1994/p/4705930.html
Copyright © 2011-2022 走看看