蓝桥杯 分巧克力

题目分析

题目要求将 n 块巧克力(每块尺寸为 a_i × b_i)分成 m 个相同大小的正方形巧克力,且每个正方形的边长尽可能大
换句话说,我们需要找到一个最大的整数 mid,使得所有巧克力可以切割出至少 m 个 mid × mid 的正方形。

代码思路

  1. 二分查找(Binary Search)

    • 目标是找到最大的 mid(正方形边长),使得 sum = ∑(a_i / mid) * (b_i / mid) ≥ m

    • 由于 mid 越大,sum 越小,所以可以使用二分法在 [0, Max(a_i, b_i)] 范围内查找。

  2. 关键变量

    • n:巧克力数量。

    • m:小朋友数量。

    • c[i].a 和 c[i].b:第 i 块巧克力的长和宽。

    • Max:所有巧克力中的最大边长(用于确定二分上限)。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值