zoukankan      html  css  js  c++  java
  • 第八届 蓝桥杯 9、分巧克力


    标题: 分巧克力

    儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
    小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。

    为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:

    1. 形状是正方形,边长是整数
    2. 大小相同

    例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。

    当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?

    输入
    第一行包含两个整数N和K。(1 <= N, K <= 100000)
    以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)
    输入保证每位小朋友至少能获得一块1x1的巧克力。

    输出
    输出切出的正方形巧克力最大可能的边长。

    样例输入:
    2 10
    6 5
    5 6

    样例输出:
    2

    #include<iostream>
    using namespace std;
    int N,K,H[100001],W[100001];
    bool judge(int x)
    {
        int count=0;
        for(int i=0;i<N;i++)
        {
            count+=(H[i]/x)*(W[i]/x);
        }
        if(count>=K)
        return true;
        else
        return false;
        
    }
    int main()
    {
        cin>>N>>K;
        int i=0;
        int high=100000,low=1;
        for(int i=0;i<N;i++) cin>>H[i]>>W[i];
             
        
        while(high-low>1)
        {
            int mid=(high+low)/2;
            if(judge(mid))
            low=mid;
            else
            high=mid;
        }
        cout<<low<<endl;
        return 0;
    }
  • 相关阅读:
    无符号数和有符号数字操作的一些注意事项
    C/C++的基本数据类型
    GoLang字符串比较(二)
    Sphinx使用指南
    GoLang字符串比较(一)
    并发与调度亲和性
    golang scheduler工作窃取
    g0
    如何将markdown转换成微信公众号中支持的html
    goroutine是如何被回收的
  • 原文地址:https://www.cnblogs.com/hcw110/p/10578191.html
Copyright © 2011-2022 走看看