蓝桥杯——2.7分巧克力

题目描述:

蓝桥杯——2.7分巧克力_第1张图片

蓝桥杯——2.7分巧克力_第2张图片

思路:

AC代码:

#include 

using namespace std;

const int N = 100010;
int h[N], w[N];

int n, k;

bool check(int mid)
{
     
    int res = 0;
    for (int i = 0; i < n; i ++)
        res += (h[i] / mid) * (w[i] / mid); // 数学公式推导
  
    if (res >= k)
        return true;
    else 
        return false;
}

int main()
{
     
    cin >> n >> k;
    for (int i = 0; i < n; i ++)
        cin >> h[i] >> w[i];
    
    int l = 0, r = N;
    while (l < r)
    {
     
        int mid = l + r + 1 >> 1;       // 注意是套用第二个模板
        if (check(mid))                 // 如果mid这个值符合条件
            l = mid;
        else
            r = mid - 1;
    }
    
    cout << l << endl;
}

你可能感兴趣的:(蓝桥杯,蓝桥杯,c++,职场和发展)