(Java)蓝桥杯_分巧克力

2023-11-04

题目描述
儿童节那天有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

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
 

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();//巧克力总数
        int K = sc.nextInt();//所需块数
        int[][] arr = new int[N][2];//巧克力数据有N块,每块有长宽两列
        for (int i = 0; i < N; i++) {//第i块巧克力数据
            arr[i][0] = sc.nextInt();//第i行第一列,长
            arr[i][1] = sc.nextInt();//第i行第二列,宽
        }
        sc.close();

        int l = 1;//开头数据
        int r = 100001;//末尾数据
        int mid=0;
        int nums=0;//分出的小块巧克力数量
        //使用二分的思想
        while (l <= r) {
            mid=(l+r)/2;//尝试  小巧克力边长

            for(int i=0;i<N;i++){//遍历每块大巧克力
                nums+=(arr[i][0]/mid)*(arr[i][1]/mid);//第i块巧克力能分成的小巧克力块数
            }

            if(nums>=K){//够分,尝试边长更大
                l=mid+1;
            }else {
                r=mid-1;//不够分,尝试更小边长
            }
        }
        System.out.print(mid);
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Java)蓝桥杯_分巧克力 的相关文章

  • 将 WAR 部署到 Tomcat(Spring Boot + Angular)

    我正在尝试使用以下命令部署 Spring Boot 应用程序WAR包装至Tomcat 10 应用程序已成功部署 但是 当我尝试访问端点时 它会导致404 未找到 战争文件 应用程序 war http localhost 8080 appli
  • 使用itext java库复制时pdf文件大小大大增加

    我正在尝试使用 Java 中的 itextpdf 库将现有的 pdf 文件复制到一些新文件中 我使用的是 itextpdf 5 5 10 版本 我在两种方式上都面临着不同的问题 PDFStamper 和 PdfCopy 当我使用 PDFSt
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • java中高效的输入流到字符串方法

    因此 我在 Java 中的 诚然非常简单 应用程序上运行探查器 令我惊讶的是 仅次于需要在时间上发出 HTTP 请求的方法的是我的方法 inputStreamToString方法 目前它的定义如下 public static String
  • 当前平台不支持桌面 API

    我遇到过这个错误 java lang UnsupportedOperationException 当前平台不支持桌面 API 我将从我的 java 应用程序中打开一个文件 我用这个方法 Desktop getDesktop open new
  • 如何在正则表达式中编写可选单词?

    我想编写一个识别以下模式的 java 正则表达式 abc def the ghi and abc def ghi 我试过这个 abc def the ghi 但是 它没有识别第二种模式 我哪里出错了 abc def the ghi 删除多余
  • 递归取消 allOf CompletableFuture

    如果我有 CompletableFuture
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • JFrame 在连续运行代码时冻结

    我在使用时遇到问题JFrame 它会冻结 连续运行代码 下面是我的代码 点击时btnRun 我调用了该函数MainLoop ActionListener btnRun Click new ActionListener Override pu
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • java绕中心旋转矩形

    我想围绕其中心点旋转一个矩形 它应该保留在应该绘制的位置并在该空间中旋转 这是我的代码 AffineTransform transform new AffineTransform transform rotate Math toRadian
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • log4j.properties 在 Wildfly 上无法正常工作

    我的类路径中有一个 log4j properties 文件 它位于 APP XX jar log4j properties 位置 我注意到在ear文件中我还可以在lib文件夹中找到log4j 1 2 17 jar 但无论我在 log4j p
  • 线程数组?

    所以我在理解如何避免线程的顺序执行时遇到了问题 我试图创建一个线程数组并在单独的循环中执行 start 和 join 函数 这是我现在拥有的代码示例 private static int w static class wThreads im
  • 如何在不使用 -cp 开关的情况下在 Groovy 中自动加载数据库 jar?

    我想简化调用 Oracle 数据库的 Groovy 脚本的执行 如何将 ojdbc jar 添加到默认类路径以便我可以运行 groovy RunScript groovy 代替 groovy cp ojdbc5 jar RunScript
  • 为什么/何时应该使用泛型方法?

    学习Java的时候遇到过通用方法 public
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I

随机推荐

  • linux 进入目录命令

    直接进入计算机目录下 常用指令 cd home 进入 home 目录 cd 返回上一级目录 cd 返回上两级目录 cd 进入个人的主目录 cd user1 进入个人的主目录 cd 返回上次所在的目录 ls 显示文件或目录 l 列出文件详细信
  • 移动端常见meta设置

    1 设置viewport 这句话设置viewport的宽为设备的宽 禁止用户进行缩放 此外 常见参数设置 a width 宽度 数值 device width 默认为980 b height 高度 数值 device height c in
  • 手写一个根据目录自动生成的路由

    文章目录 一 起因 二 思索 三 测试效果 四 项目代码 一 起因 最近研究了一下阿里dva的quickstart 其中路由配置是手动添加 如下 先将要显示的页面导入router js 然后配置 其中path products 是配置的路由
  • 在pycharm中配置变量

    实验目的 python run classifier py task name MRPC do train true do eval true data dir GLUE DIR MRPC vocab file BERT BASE DIR
  • es 索引类型与分词器调整与迁移

    索引最好起别名 方便索引调整 1 创建新索引 PUT index v2 settings number of shards 5 number of replicas 1 mappings doc dynamic strict propert
  • Python爬虫中文乱码问题

    我们在爬虫输出内容时 常常会遇到中文乱码情况 以如下网址为例 https chengdu chashebao com yanglao 19077 html 在输出内容时 出现如下图的情况 解决爬虫中文乱码的步骤 网址编码为gbk 查看网页源
  • shell与shell脚本(一)基本概念与常用的shell命令

    前言 像linux windows等的操作系统 都很大程度上地便利了我们操作计算机的能力 计算机之所以能高效处理用户指令 是因为CPU 更细致地讲 是因为CPU中的内核 也就是我们所说的运算器 控制器和寄存器 当然 我们在使用计算机是 不可
  • 四、同步方法与异步方法及回调函数

    解释一下同步方法与异步方法以及回调函数的关系 若不想很深入的了解这方面内容 可以记住以下结论 对于同时有同步方法和对应异步方法的函数 我们常用异步方法 用独立线程去处理该函数 提高用户的体验 异步方法由于我们需要等待某种事件的发生 例如当前
  • mysql插入数据时,在数据库和表的编码都是utf-8的情况下,还是出现乱码

    Mysql插入数据时 在数据库和表的编码都是utf 8的情况下还是会出现乱码 解决方法 首先先确定自己的数据库的编码是否是utf 8 查看数据库字符集 将sct换为自己的数据库的名字 SHOW CREATE DATABASE sct 会看到
  • vue 项目 基于axios 对常用5种(POST、GET、PUT、DELETE、PATCH)请求进行封装

    一 安装axios 使用 npm npm install axios save 使用 cnpm cnpm install axios save 使用 yarn yarn add axios save 建议使用cnpm 二 src目录下新建l
  • c语言 什么时候需要动态分配内存?

    我讲解一下c语言中动态分配内存的函数 可能有些初学c语言的人不免要问了 我们为什么要通过函数来实现动态分配内存呢 系统难道不是会自动分配内存吗 既然有人会问这样的问题 那么我在这里好好的讲解一下吧 首先让我们熟悉一下计算机的内存吧 在计算机
  • qt中的线程

    目前我暂时会两种线程方式 一种是继承QTHRead 另一种是movetothread 相对二样 第二种好一些 先来介绍一下第一个方法 继承QTHread public A QThread void run 重新run函数 public B
  • python sqlalchemy 多对多

    调用Column创建字段 加类型 from sqlalchemy import Table Column Integer String DATE ForeignKey 调用操作链接 反查 from sqlalchemy orm import
  • 数据结构--树与二叉树

    一 树的概述1 树的基本概念 N个结点组成一对多关系的层次结构 N 0 为空树 N 1 只有根结点的树 N gt 1 树 A 逻辑定义 前驱后继 有且仅有一个根结点 除根结点外 每一个节点有且仅有一个前驱结点 每个结点可以有0个或多个后继结
  • 冒险岛 vcruntime140.dll 丢失问题的多种方法,几种解决方法都有效

    当您尝试启动冒险岛游戏时 可能会遇到一个名为 vcruntime140 dll 丢失 的错误提示 vcruntime140 dll 是冒险岛游戏所需的一个重要系统文件 如果系统无法找到或加载该文件 您将无法正常启动游戏 在本文中 我们将详细
  • 测试存储过程中中发生异常时,之前DML操作会不会rollback

    span style font family none span style font size 14px 步骤 span span span style font size 14px 1 向表中productinfo插入一条数据 span
  • vosviewer保存成PDF文件时没有文字

    1 将vosviewer中英文国家名字 手工更换为中文后 重新导入软件 2 点击Screenshot后面的三角标 并选择 Save 3 打开PDF文件 发现另存的PDF中没有文字 还在研究如何解决
  • UI/UX记——Adobe XD

    文章目录 前言 一 Adobe XD是什么 二 3D 变换 开启全新维度进行设计 实现不可能 在作品中实现三维效果 助力流程与时俱进 操作 1 选择组件 2 启用 3D 变换 3 旋转和移动 组件 使用可重复使用的设计元素进行扩展 深入令人
  • Java:详解List集合的排序功能

    概述 List集合有两大排序方式 分别为自然排序和自定义排序 使用自然排序 需要元素类达到某种要求 使用自定义排序 就是在需要排序的时候才传入排序规则 自然排序 自然排序是 Collections sort 方法 只带一个参数 参数为Lis
  • (Java)蓝桥杯_分巧克力

    题目描述 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足