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

2024蓝桥杯每日一题(二分)

一、第一题:教室

解题思路:二分+差分
        对天数进行二分,在ck函数中用差分方法优化多次区间累加。

【Python程序代码】

n,m = map(int,input().split())
a = [0] + list(map(int,input().split()))
d,s,t = [0]*(m+5),[0]*(m+5),[0]*(m+5)
for i in range(1,m+1):d[i],s[i],t[i] = map(int,input().split())
l,r = 1,m+1
def ck(mid):tep = [0]*(n+5)for i in range(1,mid+1):tep[s[i]] += d[i]tep[t[i]+1] -= d[i]for i in range(1,n+1):tep[i] += tep[i-1]if tep[i]>a[i]:return Falsereturn True
while l<r:mid = (l+r+1)//2if ck(mid):l = midelse:r = mid-1if r>m:print(0)
else:print(-1)print(r)

 二、第二题:分巧克力

解题思路:二分
        对边长二分,所以每块大巧克力最多可以分成(h[i]/mid)*(w[i]/mid)。

【Python程序代码】

n,k = map(int,input().split())
h,w = [],[]
for i in range(n):a,b = map(int,input().split())h.append(a); w.append(b)
l,r = 1,100000
def ck(mid):res = 0for i in range(n):res += (h[i]//mid)*(w[i]//mid)if res>=k:return Truereturn False
while l<r:mid = (l+r+1)//2if ck(mid):l = midelse:r = mid-1
print(r)

三、第三题: 管道

 解题思路:二分+区间合并
        对时间进行二分,然后在ck函数中使用区间合并进行优化。下面程序貌似没AC.

【Python程序代码】

n,L = map(int,input().split())
sl = [[0,0]for i in range(n)]
tp = [[0,0]for i in range(n)]
for i in range(n):sl[i][0],sl[i][1] = map(int,input().split())
def cmp(x):return (x[0],x[1])
sl.sort(key=cmp)
l,r = 1,1000000000
def ck(mid):mi,ma = 2,L-1for i in range(n):if mid>=sl[i][1]:tp[i][0] = sl[i][0] - (mid-sl[i][1])tp[i][1] = sl[i][0] + (mid-sl[i][1])if tp[i][0]<mi:mi=tp[i][0]if tp[i][1]>ma:ma=tp[i][1]else:tp[i][0]=tp[i][1]=0if mi>1 or ma<L:return Falsetp.sort(key=cmp)ll = 0for i in range(n):if tp[i][0]==tp[i][1]==0:continueelse:if tp[i][0]>ll+1:return Falsell = max(ll,tp[i][1])if ll>=L:return Truereturn Falsewhile l<r:mid = (l+r)//2if ck(mid):r=midelse:l=mid+1
print(r)

四、第四题: 技能升级

 解题思路:二分
        对攻击力大小进行二分,题的本质考的是多路归并,采用二分进行优化。

【Python程序代码】

n,m = map(int,input().split())
a,b = [],[]
for i in range(n):a_,b_ = map(int,input().split())a.append(a_); b.append(b_)
l,r = 0,10000000def ck(mid):res = 0for i in range(n):if a[i]<mid:continueres += (a[i]-mid)//b[i] + 1if res>=m:return Truereturn False
while l<r:mid = (l+r+1)>>1if ck(mid):l = midelse:r = mid-1
cnt,res=m,0
for i in range(n):if a[i]<r:continuet = (a[i]-r)//b[i] +1cnt -= tres += (2*a[i]-(t-1)*b[i])*t//2
print(res+cnt*r)

五、第五题: 冶炼金属

 解题思路:二分
        对V值进行二分,分别找左右边界。

【Python程序代码】

n = int(input())
a,b = [0]*(n+5),[0]*(n+5)
for i in range(n):a[i],b[i] = map(int,input().split())
def pd1(x):for i in range(n):t = a[i]//xif t>b[i]:return Falseif t<b[i]:return Truereturn True
def pd2(x):for i in range(n):t = a[i]//xif t>b[i]:return Trueif t<b[i]:return Falsereturn True
def solve():l,r = 1,1000000000while l<r:mid = (l+r)//2if pd1(mid):r=midelse:l=mid+1res1 = rl, r = 1, 1000000000while l < r:mid = (l + r + 1) // 2if pd2(mid):l = midelse:r = mid - 1res2 = rprint(res1,res2)
solve()

相关文章:

  • torchrun常见参数
  • 【论文阅读】ACM MM 2023 PatchBackdoor:不修改模型的深度神经网络后门攻击
  • 颜色检测python项目
  • xlsx.js读取本地文件,按行转成数组数据
  • 手机App防沉迷系统C卷(JavaPythonC++Node.jsC语言)
  • UE5.1_TimeLine
  • yudao-cloud 学习笔记
  • web服务,C/S框架,单设备登陆实现方案
  • C++中实现String类
  • mysqld.exe运行时,提示缺少msvcr100.dll,msvcp100.dll文件,导致mysql安装失败或mysql服务无法启动
  • vue若依自定义权限控制
  • java面试题:为什么 SQL 语句不要过多的 join?
  • 【华为OD机试】智能成绩表【C卷|100分】
  • Liinux——(网络)socket编程
  • Vue3全家桶 - VueRouter - 【3】嵌套路由【children】
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • FastReport在线报表设计器工作原理
  • Hibernate【inverse和cascade属性】知识要点
  • Hibernate最全面试题
  • IDEA常用插件整理
  • JavaScript设计模式与开发实践系列之策略模式
  • JWT究竟是什么呢?
  • MySQL-事务管理(基础)
  • oldjun 检测网站的经验
  • sublime配置文件
  • TypeScript实现数据结构(一)栈,队列,链表
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 对象管理器(defineProperty)学习笔记
  • 搞机器学习要哪些技能
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 深度学习中的信息论知识详解
  • 深入浏览器事件循环的本质
  • 学习ES6 变量的解构赋值
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 栈实现走出迷宫(C++)
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (day6) 319. 灯泡开关
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)Linux Shell编程——输入输出重定向
  • (四)鸿鹄云架构一服务注册中心
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (轉)JSON.stringify 语法实例讲解
  • ***通过什么方式***网吧
  • .a文件和.so文件
  • .Net IOC框架入门之一 Unity
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET成年了,然后呢?