蓝桥备赛——循环+二分

题干 

AC code


n,k=map(int,input().split())
data=[]
for i in range(n):h,w=map(int,input().split())mid=[]mid.append(h)mid.append(w)data.append(mid)
front,tail=1,100000
def find(edge_len):global kans=0for wid,hei in data:ans+=(wid//edge_len)*(hei//edge_len)if ans>=k:return Truereturn False
while front<=tail:mid=(front+tail)//2if not find(mid):tail=mid-1else:front=mid+1
print(tail)

 相关知识

对于list of list这类二维列表,可以有这种使用方式指代列表中的数据。

for a,b in 列表:


n,k=map(int,input().split())
data=[]
for i in range(n):h,w=map(int,input().split())mid=[]mid.append(h)mid.append(w)data.append(mid)
def find(edge_len):global kans=0for wid,hei in data:ans+=(wid+hei)*edge_lenreturn ans
print(find(3))
print(find(2))

如上图所示,对应输出可知

(5+4)*3+(3+2)*3=27+15=42

(5+4)*2+(3+2)*2=18+10=28

对应可以证明该想法正确。

[[1,3],[6,5],[7,9]]对应可以使用a,b in list进行指代,表示对应list中的元素。

思路整理(逐行代码解释)

  1. for wid,hei in data:: 遍历data列表中的每个长方形的宽度和高度。

  2. ans+=(wid//edge_len)*(hei//edge_len): 计算当前长方形可以切割出的正方形数量,并累加到ans中。

  3. if ans>=k: 如果ans大于或等于k,表示当前边长edge_len满足要求,可以切割出至少k个正方形。

  4. return True: 返回True,表示当前边长edge_len符合条件。

  5. return False: 如果循环结束后还未找到符合条件的边长,返回False。

  6. while front<=tail: 进入二分查找循环,当最小可能边长小于等于最大可能边长时执行。

  7. mid=(front+tail)//2: 计算当前边长的中点。

  8. if not find(mid):如果当前边长mid无法切割出至少k个正方形。

  9. tail=mid-1: 更新最大可能边长为mid-1。

  10. else::如果当前边长mid可以切割出至少k个正方形。

  11. front=mid+1: 更新最小可能边长为mid+1。

  12. print(tail): 输出最大符合条件的正方形边长。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 Wireshark 解码 H.264

H264&#xff0c;你不知道的小技巧-腾讯云开发者社区-腾讯云 这篇文章写的非常好 这里仅做几点补充 init.lua内容&#xff1a; -- Set enable_lua to false to disable Lua support. enable_lua trueif not enable_lua thenreturn end-- If false and Wireshark was start…

DeepWalk论文翻译

DeepWalk论文翻译 DeepWalk: Online Learning of Social Representations DeepWalk&#xff1a;社会表征的在线学习 ABSTRACT 我们提出了 DeepWalk&#xff0c;一种学习网络中顶点潜在表示的新方法。这些潜在表示在连续向量空间中对社会关系进行编码&#xff0c;很容易被统…

网站上的图片显示不清晰的解决办法!

1.图片搞上去。图片png格式显示不出来。 upload文件夹里。图片没上传。 2.显示的图片不够清晰。 productDescription.css height: 250px; width: 200px; 显示的图片大小是宽200&#xff0c;高250&#xff0c; 所以在windows的画图工具里用画图把像素成这个像素大小的清…

基于Spring Boot的职称评审管理系统

基于Spring Boot的职称评审管理系统 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 部分系统展示 前台首页界面 用户注册登录界面 管理员登录界面 个人中心界面…

(React组件基础)前端八股文修炼Day6

一 类组件与函数组件有什么异同 在React中&#xff0c;类组件和函数组件是创建组件的两种主要方式。随着React的发展&#xff0c;尤其是自Hooks在React 16.8中引入以来&#xff0c;函数组件的功能变得更加强大&#xff0c;使得它们能够更加方便地与类组件相竞争。下面是类组件…

鲍威尔最新演讲:今年仍有降息空间

作者&#xff1a;秦晋 4月3日&#xff0c;据《华尔街日报》报道&#xff0c;鲍威尔仍然认为美联储今年有降息空间。 美联储主席鲍威尔周三在斯坦福大学发表演讲时表示&#xff0c;今年的经济活动强于预期并没有改变美联储的广泛预期&#xff0c;即通胀下降将允许美联储在今年降…

gitcode 配置 SSH 公钥

在 gitcode 上配置SSH公钥后&#xff0c;可以通过SSH协议安全地访问远程仓库&#xff0c;无需每次都输入用户名和密码。以下是配置SSH公钥的步骤&#xff1a; 5分钟解决方案 用 OpenSSH公钥生成器 生成 公钥和私钥&#xff0c;私钥文件&#xff08;id_rsa&#xff09;下载&am…

代码随想录阅读笔记-二叉树【二叉搜索树中的众数】

题目 给定一个有相同值的二叉搜索树&#xff08;BST&#xff09;&#xff0c;找出 BST 中的所有众数&#xff08;出现频率最高的元素&#xff09;。 假定 BST 有如下定义&#xff1a; 结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的…

Java 中 Spring Boot 框架下的 Email 开发

Email 开发 1. 核心依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><…

计算机服务器中了helper勒索病毒怎么办,helper勒索病毒解密流程步骤

随着网络技术在企业中的不断应用&#xff0c;越来越多的企业离不开网络&#xff0c;网络为企业提供了极大便利&#xff0c;大大提升了生产运营效率&#xff0c;由此而产生的网络数据安全问题也成为了企业关心的主要话题。近期&#xff0c;云天数据恢复中心接到多家企业的求助&a…

webrtcP2P通话流程

webrtcP2P通话流程 在这里&#xff0c;stun服务器包括stun服务和turn转发服务。信令服服务还包括im等功能 webrtc多对多 mesh方案 适合人数较少的场景 webrtc多对多 mcu方案 &#xff08;multipoint control point&#xff09;将上行的视频/音频合成&#xff0c;然后分发。…

StarRocks使用Minio备份和还原

1.安装minio Centos7安装minio-CSDN博客 minio api端口&#xff1a;9090 下文用到这个端口 必须提前创建好桶: packfdv5 名称自定义和后面对上就可以 2.创建备份仓库 格式&#xff1a; CREATE REPOSITORY <repository_name> WITH BROKER ON LOCATION "s3a:/…