蓝桥杯 分巧克力

news2024/12/22 18:32:38

题目描述

儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。

小明一共有 NN 块巧克力,其中第 ii 块是 H_i \times WiHi​×Wi 的方格组成的长方形。为了公平起见,

小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:

  1. 形状是正方形,边长是整数;

  2. 大小相同;

例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。

当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?

输入描述

第一行包含两个整数 N,KN,K (1 \leq N, K \leq 10^51≤N,K≤105)。

以下 N 行每行包含两个整数 H_i,W_iHi​,Wi​ (1 \leq H_i, W_i \leq 10^51≤Hi​,Wi​≤105)。

输入保证每位小朋友至少能获得一块 1x1 的巧克力。

输出描述

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

输入输出样例

示例

输入

2 10
6 5
5 6

输出

2

运行限制

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

分巧克力

n,k = map(int,input().split())
x = []  #存放长或宽
y = []  #存放宽或长,x和y这两个数组存放n块巧克力的长和宽
for i in range(n):
  a,b = map(int,input().split())
  x.append(a)
  y.append(b)
 
def check(d):
  global x,y  #定义为全局变量 
  sum=0
  for i in range(n):
    sum+=(x[i]//d)*(y[i]//d)  #即为该块巧克力中能切出几块以i为边长的正方形
  return sum
#经典的二分查找
low = 1  #最小值
high = max(max(x),max(y))  #最大值
while low<high:
  mid = (low+high)//2+1  #中间值
  if check(mid)>=k: 
    low = mid
  else: 
    high = mid-1
 
print(high)

备注:二分细节的设计需要多打草稿,否则很难想象出来

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读书笔记:神经网络的学习 train_neuralnet.py ← 斋藤康毅

提醒&#xff1a;本例涉及到三个 Python 文件&#xff0c;即 two_layer_net.py&#xff0c;train_neuralnet.py&#xff0c;mnist.py 等。 显然&#xff0c;要进行神经网络的学习&#xff0c;必须先构建神经网络。 因此&#xff0c;本文先构建了一个2层神经网络。代码详见 two_…

玩转代码|解决Chrome浏览器内置谷歌翻译功能无法使用问题!

最近这几天在使用Chrome浏览器的内置谷歌翻译功能时&#xff0c;总是一直停留在不翻译的状态&#xff0c;一开始我还以为是网络波动过几天就好了&#xff0c;过了好几天依旧是这样。去看了新闻才知道谷歌翻译已经退出了中国市场。根据TechCrunch的消息称&#xff0c;谷歌发言人…

我本芬芳

我本芬芳推荐语&#xff1a; 读完前几章&#xff0c;一边为惠才遇人不淑感到遗憾&#xff0c;又不觉想起自己的童年种种&#xff0c;书中简单的三言两语&#xff0c;却又不断地在触动我。我不由得想到上世纪六七十年代的女子们&#xff0c;也就是我的奶奶外婆们&#xff0c;将自…

我的周刊(第076期)

我的信息周刊&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。&#x1f3af; 项目python-wechaty[1]Wechaty 是一个开源聊天机器人框架…

力扣刷题|226.翻转二叉树、101. 对称二叉树

文章目录LeetCode 226.翻转二叉树题目链接&#x1f517;思路递归法迭代法LeetCode 101. 对称二叉树题目链接&#x1f517;思路递归法迭代法相关题目LeetCode 226.翻转二叉树 题目链接&#x1f517; LeetCode 226.翻转二叉树 思路 这道题目使用前序遍历和后序遍历都可以&…

PVID和VID相关小知识

欢迎来到东用知识小课堂&#xff01;1.PVID和VID的区别PVID和VID经常出现于二、三层交换机里&#xff0c;很多时候由于PVID和VID的设置不合理&#xff0c;造成VLAN划分变得混乱。一般你去超市买东西有个扫描设备扫描一下商品上的标签&#xff0c;然后价格就会出现。商品上的标签…

分布式锁与数据库悲观、乐观锁

分布式锁 什么是分布式锁 要介绍分布式锁&#xff0c;首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁&#xff0c;在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果&#xff0c;因为…

Redis主从复制与读写分离

1、为什么要主从复制、读写分离Redis在作为缓存的时候&#xff0c;随着项目访问量的增加&#xff0c;对Redis服务器的操作也越加频繁&#xff0c;虽然Redis读写速度都很快&#xff0c;但是一定程度上也会造成一定的延时&#xff0c;甚至出现宕机的可能性&#xff0c;这时候就出…

如何使用知行之桥搭建SFTPServer

知行之桥EDI系统同时支持SFTP Server和SFTP Client功能&#xff0c;既可以作为SFTP Server供多个Client连接&#xff0c;也可以作为Client连接多个Server。无论是作为SFTP Server还是SFTP Client&#xff0c;都只需要简单的配置即可实现。 SFTP Server的特性包括一下几点&…

【React全家桶】react路由

react路由5.1. 路由的简介5.2 路由的基本使用5.3 路由组件与一般组件5.4 NavLink及其封装5.5 Switch5.6 路由的模糊匹配与严格匹配5.7 Redirect重定向5.8 向路由组件传递参数5.9 编程式路由导航5.10withRouter的使用5.12 BrowserRouter与HashRouter的区别5.1. 路由的简介 单页W…

代码随想录--二叉树章节总结 Part III

代码随想录–二叉树章节总结Part III 1.Leetcode106 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 解题思路…

【Go基础】并发编程

文章目录1. 并发模型2. Goroutine的使用3. Channel的同步与异步4. 并发安全性5. 多路复用6. 协程泄漏7. 协程管理1. 并发模型 任何语言的并行&#xff0c;到操作系统层面&#xff0c;都是内核线程的并行。同一个进程内的多个线程共享系统资源&#xff0c;进程的创建、销毁、切…

【监控开发】jps命令怎么远程调用另一个IP的机器,jstatd服务支持

jsp命令远程调用咩有Linux服务器启动jstatd服务的时候Linux服务器如何启动jstatd服务1.查找jdk所在目录2.在jdk的bin目录下创建文件jstatd.all.policy3.给这个文件赋权4.这个文件写入安全配置&#xff0c;赋值粘贴即可5.启动jstatd服务6.查看是否启动成功再去另外一台服务器调用…

第一章:Go语言为并发而生

在早期 CPU 都是以单核的形式顺序执行机器指令。Go语言的祖先C语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指&#xff1a;所有的指令都是以串行的方式执行&#xff0c;在相同的时刻有且仅有一个 CPU 在顺序执行程序的指令。 随着处理器技术的发展&#xff0c;单核…

C语言深度解剖-关键字(4)

目录 signed、unsigned 关键字补充内容 关于大端和小端 大小端存储数据方式 判断大小端 深入理解数据存储 练习&#xff1a; 写在最后&#xff1a; signed、unsigned 关键字补充内容 关于大端和小端 我们通过在内存中存储一个值&#xff0c; 用于观察数据在内存中的存…

Python连接Liunx中mysql数据库-保姆级教程

首先确保你的liunx中已经安装好了mysql数据库如果没有安装mysql数据库看这篇文章Centos6从零开始安装mysql和tomcat后台环境&#xff0c;并成功部署Tomcat项目图文详细过程 python连接Liunx中mysql数据库进行增删改查liunx中相关环境改变Python中连接liunx中的mysql数据库在Nav…

上班第一件事:马上卸载这个恶心的软件!

一上班就被Notepad给恶心到了。“如果不同意政治观点&#xff0c;就在你的源码中添加随机字符。”这个Notepad作者侯今吾真是把自己当做大人物了啊&#xff1f;&#xff01;率性而为&#xff0c;根本不再考虑用户的感受了。 这个Twitter帖子很快就被一片骂声淹没&#xff0c;这…

【每日CSS3代码】

1-1 两栏布局【1/27】 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…

OpenJudge NOI 2.4 8463:Stupid cat Doge

【题目链接】 OpenJudge NOI 2.4 8463:Stupid cat & Doge 【题目考点】 1. 递归 2. 分形图 【解题思路】 解法1&#xff1a;递归 1级正方形边长是212^121&#xff0c;2级正方形边长为222^222&#xff0c;。。。&#xff0c;n级正方形边长为2n2^n2n&#xff0c;总格子…

autojs画六边形

牙叔教程 简单易懂 界面基础代码 "nodejs ui"; require("rhino").install(); const ui require("ui"); class MainActivity extends ui.Activity {constructor() {super();}get layoutXmlFile() {return "layout.xml";}onContentVi…