99分巧克力

99分巧克力

⭐️难度:中等

🌟考点:二分

2017省赛真题

📖

📚

java 复制代码
import java.util.Scanner;

public class  Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int k = sc.nextInt();

        int[] h = new int[100010];
        int[] w = new int[100010];

        for (int i = 1; i <= n; i++) {
            h[i] = sc.nextInt();
            w[i] = sc.nextInt();
        }

        // 所切最大边长和最小边长
        int l = 1;
        int r = 10000;

        while(l < r){
            int mid = (l + r + 1) / 2;
            if(check(mid,n,h,w,k)){
                l = mid;
            }else{
                r = mid -1;
            }
        }
        System.out.println(l);
    }

    static boolean check(int x,int n,int[] h,int[] w,int k){
        long ans = 0;
        for (int i = 1; i <= n; i++) {
            ans = ans + (h[i] / x) * (w[i] / x);
            if(ans >= k){
                return true; // 够分,return true
            }
        }
        return false;
    }
}

🍎笔记

可以看出随着巧克力边长的变小,巧克力分出来的数量越多,因此是一个递减函数。具有单调性。可以利用二分。

相关推荐
SimonKing31 分钟前
JetBrains 用户狂喜!这个 AI 插件让 IDE 原地进化成「智能编码助手」
java·后端·程序员
狂奔小菜鸡34 分钟前
Day39 | Java中更灵活的锁ReentrantLock
java·后端·java ee
NE_STOP13 小时前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室18 小时前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风20 小时前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme20 小时前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
Be_Better20 小时前
学会与虚拟机对话---ASM
java
开源之眼1 天前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
Maori3161 天前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java
用户908324602731 天前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot