zoukankan      html  css  js  c++  java
  • 4.18 每日一题题解

    华华给月月准备礼物

    涉及知识点:

    • 二分

    solution:

    • (大家周末愉快QAQ)
    • (题意:给出n个木棍长度,问你分成k个长度相同的小木棍的最大长度?)
    • (显然当答案越大的时候,能分成的小木棍越少,符合二分的性质)
    • (直接二分小木棍的长度,check当前长度是否满足条件即可)
    • (二分写法很多,不过原理都是不断缩小上界和下界来逼近一个定值)
    • (当然这一题也比较像之前做过的典型二分题目:)
    • (整数二分)POJ 3273-Monthly Expense
    • (实数二分)POJ 3122-Pie

    std:

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    const int maxn = 200005;
    ll a[maxn];
    ll n,k;
    bool check(ll x)
    {
        ll cnt = 0;
        for(int i=1;i<=n;i++){
            cnt += (a[i]/x);
        }
        return cnt >= k;
    }
    int main()
    {
        cin>>n>>k;
        for(int i=1;i<=n;i++)cin>>a[i];
        ll l = 1 , r = 2e9 , mid;
         while(l < r){
            mid  = (l+r)>>1;
            if(check(mid))l = mid + 1;
            else r = mid;
        }
        cout<<l - 1<<endl;
        return 0;
    }
    
  • 相关阅读:
    JavaScript节点属性
    main函数的参数
    CGI
    open()函数 linux中open函数使用
    海伦公式
    C语言字符串操作函数
    makefile(一)
    makefile
    第一天
    时间小憩
  • 原文地址:https://www.cnblogs.com/QFNU-ACM/p/12724586.html
Copyright © 2011-2022 走看看