蓝桥杯 之 二分
文章目录
- 习题
- 肖恩的n次根
- 分巧克力
- 2.卡牌
- 二分是十分重要的一个算法,常常用于求解一定范围内,找到满足条件的边界值的情况
- 主要分为
浮点数二分和整数二分 - 二分问题,最主要是写出这个
check函数,这个check函数最主要就是使用模拟的方法进行求解
二分查找算法一
二分算法(二)

函数单调



0-1单调


习题
肖恩的n次根
肖恩的n次根

- 这题是一个浮点数二分的问题,我们只用确定区间的左范围和右范围,确定一个精度进行判断,最好是超过题目要求的精度的
100
import os
import sys# 请在此输入您的代码
# 浮点数二分法# 判断是否小于等于target
def check(a1,b1,target):ans = 1for i in range(b1):ans *= a1return ans <= targeta,b = map(int,input().split())l,r = 0,1000
while r - l > 1e-9:mid = (l+r)/2if check(mid,b,a):l = mid else:r = midprint(int(r*1000))
分巧克力
分巧克力

- 判断是否存在单调性:
当你分到的巧克力的边长越长,那么可以切分的巧克力的数量就越少,所以说是存在这个单调性的 - 那么确定一个二分的范围:
最少的边长,肯定是1,最大的边长,那么就可以认为是最长的w,h
import os
import sys# 请在此输入您的代码N,K = map(int,input().split())
cho = []
maxnum = 0
for _ in range(N):h,w = map(int,input().split())maxnum = max(maxnum,h,w)cho.append([h,w])def check(mid):cou = 0for i in range(N):cou += (cho[i][0] // mid )* (cho[i][1] // mid)return cou >= Kl ,r = 1,maxnum
ans = 0
while l <= r:mid = (l+r) // 2if check(mid):ans = max(ans,mid)l = mid + 1else:r = mid - 1
print(ans)
- 注意上面的题目,有些同学可能判断不了,最后的答案是
l还是r,所以我们直接多开一个变量,当满足情况的时候更新答案即可,最后直接输出这个ans - 当然,在理解的情况,我们当然是输出
不满足情况下修改的那个变量,在这个题目当中,就是r
import os
import sys# 请在此输入您的代码N,K = map(int,input().split())
cho = []
maxnum = 0
for _ in range(N):h,w = map(int,input().split())maxnum = max(maxnum,h,w)cho.append([h,w])def check(mid):cou = 0for i in range(N):cou += (cho[i][0] // mid )* (cho[i][1] // mid)return cou >= Kl ,r = 1,maxnum
while l <= r:mid = (l+r) // 2if check(mid):l = mid + 1else:r = mid - 1
print(r)
2.卡牌
2.卡牌

- 确定二分的对象,那就是对于可以组成的牌的套数,对应的范围
0到max(a)+max(b),因为尽可能把最大的情况都得包括进去 check函数的确定,就是检查,我们要求组成mid套牌,能否在每一种牌都可以凑出mid张,如果有一种不满足,提前返回False,当然得考虑这个补充的牌的数量是否超过m
import os
import sys# 请在此输入您的代码n,m = map(int,input().split())
a = list(map(int,input().split()))
b = list(map(int,input().split()))def check(mid):needchange = 0for i in range(n):# 模拟判断情况,如果强制情况下都不满足,那直接返回不满足if a[i] + b[i] < mid:return Falseif a[i] < mid:needchange += (mid - a[i] )if needchange > m :return Falsereturn Truel,r = 0,max(a)+max(b)
ans = 0
while l <= r:mid = (l+r) // 2if check(mid):ans = max(ans,mid)l = mid + 1else:r = mid - 1
print(ans)相关文章:
蓝桥杯 之 二分
文章目录 习题肖恩的n次根分巧克力2.卡牌 二分是十分重要的一个算法,常常用于求解一定范围内,找到满足条件的边界值的情况主要分为浮点数二分和整数二分二分问题,最主要是写出这个check函数,这个check函数最主要就是使用模拟的方法…...
从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪 B1信号的捕获B1信号的跟踪 前面已经验证了射频能够接收到B1的信号,通过FPGA采集了IQ信号之后能够通过matl…...
sqlalchemy:将mysql切换到OpenGauss
说明 之前python的项目使用的mysql,近期要切换到国产数据库OpenGauss。 之前的方案是fastapisqlalchemy,测试下来发现不用改代码,只要改下配置即可。 切换方案 安装openGauss-connector-python-psycopg2 其代码工程在:https:…...
memtest86检测内存
上次在R730安装万兆网卡的时候,使用过memtest64进行测试。这个操作肯定是有用的,我就用这个方法查出有问题的内存条,及时找商家进行了更换。 但是该方案有个问题,只能锁定部分内存,如下图,只测试到了23G左…...
OpenCV图像拼接(10)用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类cv::detail::Timelapser
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::Timelapser 是 OpenCV 库中用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类。它通常用于将一系列…...
验证linux多进程时间片切换的程序
一、软件需求 在同时运行一个或多个一味消耗 CPU 时间执行处理的进程时,采集以下统计信息。 ・在某一时间点运行在逻辑 CPU 上的进程是哪一个 ・每个进程的运行进度 通过分析这些信息,来确认本章开头对调度器的描述是否正确。实验程序的…...
【Basys3】外设-灯和数码管
灯 约束文件 set_property PACKAGE_PIN W5 [get_ports CLK] set_property PACKAGE_PIN U18 [get_ports rst] set_property PACKAGE_PIN U16 [get_ports {led[0]}] set_property PACKAGE_PIN E19 [get_ports {led[1]}] set_property PACKAGE_PIN U19 [get_ports {led[2]}] set…...
axios文件下载使用后端传递的名称
java后端通过HttpServletResponse 返回文件流 在Content-Disposition中插入文件名 一定要设置Access-Control-Expose-Headers,代表跨域该Content-Disposition返回Header可读,如果没有,前端是取不到Content-Disposition的,可以在统…...
从零开始搭建Anaconda环境
Anaconda是一个流行的Python数据科学平台,包含conda包管理器、Python解释器和大量预装的数据科学工具包。以下是详细的安装和配置步骤: 1. 下载Anaconda 访问Anaconda官方网站 根据你的操作系统(Windows/macOS/Linux)选择相应版本 推荐下载Python 3.x版…...
TDengine 中的命名与边界
简介 本章主要介绍命名的合法字符集和限制规则,这对于正确使用 TDengine,减小报错很重要,这些规则在 SQL 语句中都生效,在使用过程中要注意,避免不必要的错误。 名称命名规则 合法字符:英文字符、数字和…...
软件架构设计中的软件过程模型初识
软件架构设计中的软件过程模型是指导软件开发过程的框架,它们定义了软件开发的不同阶段、活动、任务和角色。结合具体的使用场景,可以更好地理解这些模型如何在实际项目中应用。以下将详细介绍几种常见的软件过程模型,并结合典型场景进行讲解…...
基于ssm的课程辅助教学平台(全套)
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对《离散结构》课程教学信息管理混乱,出错率高,信息安…...
[创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。
前言: 一、战略的本质是选择、聚焦 关于战略的本质,触及了商业竞争的核心矛盾:选择成本优先(效率/低毛利)还是差异化(效益/高毛利),本质上是对企业战略方向的终极拷问。 1、战略选…...
洛谷题单1-P5705 【深基2.例7】数字反转-python-流程图重构
题目描述 输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。 输入格式 一行一个浮点数 输出格式 …...
Typora 小乌龟 git 上传到gitee仓库教程
首先进行资源分享 通过网盘分享的文件:TortoiseGit-LanguagePack-2.17.0.0-64bit-zh_CN.msi等4个文件 链接: https://pan.baidu.com/s/1NC8CKLifCEH_YixDU3HG_Q?pwdqacu 提取码: qacu --来自百度网盘超级会员v3的分享 首先将软件进行解压 看自己电脑的版本进行…...
【新人系列】Golang 入门(八):defer 详解 - 上
✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12898955.html 📣 专栏定位:为 0 基础刚入门 Golang 的小伙伴提供详细的讲解,也欢迎大佬们…...
知识图谱之知识抽取:从数据海洋中 “捞金”
目录 知识抽取:开启知识宝库的钥匙 知识抽取的对象:实体、关系与属性 知识抽取的方法:各显神通的 “淘金术” 基于规则的方法 机器学习方法 深度学习方法 知识抽取面临的挑战:荆棘丛中的探索 数据的多样性和复杂性 语义理…...
RAG - 五大文档切分策略深度解析
文章目录 切分策略1. 固定大小分割(Fixed-Size Chunking)2. 滑动窗口分割(Sliding Window Chunking)3. 自然语言单元分割(Sentence/Paragraph Segmentation)4. 语义感知分割(Semantic-Aware Seg…...
keil中文注释出现乱码怎么解决
keil中文注释出现乱码怎么解决 在keil–edit–configuration中encoding改为chinese-GB2312...
论文阅读笔记——ReconDreamer
ReconDreamer 论文 在 DriveDreamer4D 的基础上,通过渐进式数据更新,解决大范围机动(多车道连续变道、紧急避障)的问题。同时 DriveDreamer4D生成轨迹后直接渲染,而 ReconDreamer 会实时通过 DriveRestorer 检测渲染结…...
鸿蒙harmonyOS:笔记 正则表达式
从给出的文本中,按照既定的相关规则,匹配出符合的数据,其中的规则就是正则表达式,使用正则表达式,可以使得我们用简洁的代码就能实现一定复杂的逻辑,比如判断一个邮箱账号是否符合正常的邮箱账号࿰…...
计算机网络——传输层(TCP)
传输层 在计算机网络中,传输层是将数据向上向下传输的一个重要的层面,其中传输层中有两个协议,TCP,UDP 这两个协议。 TCP 话不多说,我们直接来看协议报头。 源/目的端口号:表示数据从哪个进程来࿰…...
英伟达与通用汽车深化合作,澳特证券am broker助力科技投资
在近期的GTC大会上,英伟达CEO黄仁勋宣布英伟达将与通用汽车深化合作,共同推进AI技术在自动驾驶和智能工厂的应用。此次合作标志着自动驾驶汽车时代的加速到来,同时也展示了英伟达在AI技术领域的最新进展。 合作内容包括:…...
Visual Studio 2022静态库与动态库创建及使用完全指南
在C开发中,库(Library)是代码复用的重要方式。本教程将详细介绍如何在Visual Studio 2022中创建和使用静态库(.lib)和动态库(.dll),每种库类型都会有完整的创建步骤和实际示例。 第…...
C++中常见符合RAII思想的设计有哪些
文章目录 **一、标准库中的 RAII 类**1. **智能指针**2. **文件操作类**3. **锁管理类**4. **容器类**5. **线程管理** **二、自定义 RAII 类的常见场景**1. **数据库连接**2. **图形资源管理(如 OpenGL 纹理)**3. **网络套接字**4. **事务处理**5. **临…...
CUDA Memory Fence 函数的功能与硬件实现细节
CUDA Memory Fence 函数的功能与硬件实现细节 Memory Fence 的基本功能 CUDA中的memory fence函数用于控制内存操作的可见性顺序,确保在fence之前的内存操作对特定范围内的线程可见。主要功能包括: 排序内存操作:确保fence之前的内存操作在…...
CSS学习笔记5——渐变属性+盒子模型阶段案例
目录 通俗易懂的解释 渐变的类型 1、线性渐变 渐变过程 2、径向渐变 如何理解CSS的径向渐变,以及其渐变属性 通俗易懂的解释 渐变属性 1. 形状(Shape) 2. 大小(Size) 3. 颜色停靠点(Color Sto…...
[Java微服务架构]4_服务通信之客户端负载均衡
欢迎来到啾啾的博客🐱,一个致力于构建完善的Java程序员知识体系的博客📚,记录学习的点滴,分享工作的思考、实用的技巧,偶尔分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄…...
基于SpringBoot实现的高校实验室管理平台功能四
一、前言介绍: 1.1 项目摘要 随着信息技术的飞速发展,高校实验室的管理逐渐趋向于信息化、智能化。传统的实验室管理方式存在效率低下、资源浪费等问题,因此,利用现代技术手段对实验室进行高效管理显得尤为重要。 高校实验室作为…...
吴恩达深度学习复盘(1)神经网络与深度学习的发展
一、神经网络的起源与生物学动机 灵感来源 神经网络的最初动机源于对生物大脑的模仿。20 世纪 50 年代,科学家试图通过软件模拟神经元的工作机制(如树突接收信号、轴突传递信号),构建类似人类大脑的信息处理系统。 生物神经元的简…...
