【每日一题】(2026/3/24)【题目名称】分巧克力

题目概述:
image

输入输出描述:
image

解题思路:
为什么会想到用二分?是因为当我们边长越来越大的时候,所得到的巧克力数目是越来越少的,呈现一个递减的规律,这个时候我们就可以用二分去解决此类最大、最小、相等的问题

代码:


import java.util.*;
public class Main {
    static int[][] arr;
    static int N;
    static int K;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N=sc.nextInt();
        K=sc.nextInt();
        arr=new int[N][2];
        for (int i = 0; i < N; i++) {
            arr[i][0]=sc.nextInt();
            arr[i][1]=sc.nextInt();
        }
        int left=1;
        int right=100000;
        int mid=0;
        int ans=0;
        while(left<=right){
            mid=(left+right)/2;
            if(cntchoclate(mid)>=K){
                if(ans<mid)ans=mid;
                left=mid+1;
            }else{
                right=mid-1;
            }
        }
        System.out.println(ans);
    }
    public static int cntchoclate(int x){
        int cnt=0;
        for (int i = 0; i < N; i++) {
            cnt+=(arr[i][0]/x)*(arr[i][1]/x);
        }
        return cnt;
    }
}
posted @ 2026-03-24 12:24  Jwwind  阅读(2)  评论(0)    收藏  举报