zoukankan      html  css  js  c++  java
  • {HDU}{4190}{Distributing Ballot Boxes}{二分答案}

    二分答案与箱子数目进行匹配判定。

    #include <iostream>
    #include <string>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <memory>
    #include <cmath>
    #include <bitset>
    #include <queue>
    #include <vector>
    #include <stack>
    using namespace std;
    
    const int MAXN = 600000;
    
    #define CLR(x,y) memset(x,y,sizeof(x))
    #define MIN(m,v) (m)<(v)?(m):(v)
    #define MAX(m,v) (m)>(v)?(m):(v)
    #define ABS(x) ((x)>0?(x):-(x))
    #define rep(i,x,y) for(i=x;i<y;++i)
    
    
    int a[MAXN];
    int n,b;
    
    bool judge(const int& vote)
    {
        int tmp,i,j;
        int t,cnt;
        cnt = 0;
        rep(i,0,n){
            tmp = a[i];
            while( true ) {
                ++cnt;
                tmp -= vote;
                if( tmp <= 0 )
                    break;
            }
            if( cnt > b )
                return false;
        }
        return true;
    }
    int work()
    {
        int i,j,tmp,val;
        int l,r,mid;
        while( scanf("%d%d",&n,&b) ){
            if( n == -1 || b == - 1)
                break;
            rep(i,0,n)
                scanf("%d",&a[i]);
            l = 0;
            r =  5000000;
            while( l < r ){
                mid = (l+r)>>1;
                if(judge(mid))
                    r = mid;
                else
                    l = mid + 1;
            }
            printf("%d\n",r);
        }
        return 0;
    }
    int main()
    {
        work();
        return 0;
    }
    
  • 相关阅读:
    洛谷 P3146 [USACO16OPEN]248
    洛谷 P2633 Count on a tree
    bzoj 1040 1040: [ZJOI2008]骑士
    poj 3417 Network
    洛谷 P2149 [SDOI2009]Elaxia的路线
    2、小文件问题解决
    ☀【组件
    -_-#【JS】隐含全局变量
    -_-#flash播放器自适应
    -_-#【插件】MD5
  • 原文地址:https://www.cnblogs.com/lvpengms/p/2504317.html
Copyright © 2011-2022 走看看