当前位置: 首页 > news >正文

蓝桥杯真题(JAVA)--分巧克力

题目描述

儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有 NN 块巧克力,其中第 i块是Hi×Wi 的方格组成的长方形。为了公平起见,
小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:
形状是正方形,边长是整数;
大小相同;
例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。
当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?

输入描述

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

输出描述

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

输入输出样例

示例

输入
2 10
6 5
5 6
输出
2

运行限制

最大运行时间:2s
最大运行内存: 256M

思路:二分法

import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int N = sc.nextInt();//共有N快巧克力int K = sc.nextInt();//K个小朋友\int Hi[] = new int[N];int Wi[] = new int[N];for(int i = 0; i<N ; i++) {//巧克力边长Hi[i] = sc.nextInt();Wi[i] = sc.nextInt();}int min = 1;int max = 10000;int ans = 0;while(min<=max) {//用二分法int sum = 0;int mid = (max + min)/2;for(int i = 0;i<N; i++) {sum+=(Hi[i]/mid)*(Wi[i]/mid);}if(sum<K) {max = mid - 1;}else {min = mid + 1;ans = mid;}}System.out.println(ans);}
}

http://www.lryc.cn/news/25696.html

相关文章:

  • 机器学习:学习KMeans算法,了解模型创建、使用模型及模型评价
  • ChatGPT引爆AIGC,垂类龙头迎来“创新春天”
  • 科技制造商必须对安全、设计选择承担更多责任
  • HTML认知
  • 全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例实践
  • 【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
  • 学了很久python却什么都做不了?这个方法一定要试试
  • SiC MOSFET驱动电压的分析
  • Python爬虫之Scrapy框架爬虫实战
  • 基于DSP的三相开关霍尔永磁同步电机控制
  • Vue和React的对比
  • 移动进阶之高效开发
  • 用户手册:遥测服务之推送至 TDengine
  • 软件测试的主要工作内容是什么
  • 【云原生kubernetes】k8s中job与cronjob使用详解
  • js-cookie的使用
  • c++11 关键字 override 使用
  • 从16K跳槽到20K,最后算下来年薪却还降了,我笑了····
  • 线性表 链表表示
  • 面试题JavaScript篇(二)
  • 项目管理工具dhtmlxGantt甘特图入门教程(十五):从MS项目导入/导出(下)
  • 2023 年 6 大智能合约语言
  • 家用洗地机哪款最好用?全球洗地机十大品牌
  • 【2223sW2】LOG1
  • Spring Cloud配置application.yml与bootstrap.yml区别及多profile配置 | Spring Cloud 6
  • springboot通过aop实现全局日志(是否自定义注解都可以)
  • k8s面试题-进阶
  • 预览版Edge申请微软new Bing失败解决方案
  • Spring中Bean生命周期及循环依赖
  • 【3.1】MySQL锁、动态规划、Redis缓存,过期删除与淘汰策略