蓝桥杯寒假集训第二天(分巧克力)

news2024/9/29 19:19:03

没有白走的路,每一步都算数🎈🎈🎈

题目描述:

有很多的巧克力块,需要设计一个程序,让手艺师傅切出来的巧克力既满足切出来的巧克力的份数达到客户要求的份数,并且切出来的巧克力块尽可能的大。

输入描述:

第一行:

输入俩个数据,N,K,N代表原来的大巧克力的块数,K表示客户需要得到的块数

第二行:

接下来每行表示每个巧克力的长度和宽度

输出描述:

输出最终师傅切出来的最大长度

样例输入输出:

样例输入:

2 10

5 6

6 5

样例输出:

2

暴力解法

        1.出现段错误的原因:x的循环没有循环到最后一个,即min(lmin,rmin)+1

 出错原因:

当边长很大的时候,需要的块数相对较小的时候,就有些块是不需要切的,所以这里需要把块的大小给扩大,不应该是min(minl,minr) 。上述的例子,我们输出的不应该是3,还可以是5,6。所以需要设置参数调整一下。

当然这里设置成

lmax = max(L),rmax = max(R),

x的取值也从1到其中的最大值之后,

自然而然的时间也会增加了。

最后就是超时的问题

超时的解决办法,采用二分去写

尝试用二分的方法去写

暴力法

代码:

import os
import sys

n,k = map(int,input().split())
L = []
R = []
for i in range(n):
    a,b = map(int,input().split())
    L.append(a)
    R.append(b)
lmax = max(L)
rmax = max(R)
count = 0
flag = 1
for x in range(1,max(lmax,rmax)+1):
    count = 0
    for i in range(n):
        count+=(L[i]//x)*(R[i]//x)
    if count<k:
        flag = 0
        break
if flag == 1:
    print(x)
else:
    print(x-1)



​​​​​​​二分法​​​​​​​

第一次尝试,二分法出现了计算结果和正确结果相差为一的情况,这是二分法在数据量较大的时候出现结果比正常的结果多了1

 代码:

import os
import sys

n,k = map(int,input().split())
L = []
R = []
for i in range(n):
    a,b = map(int,input().split())
    L.append(a)
    R.append(b)
lmax = max(L)
rmax = max(R)
count = 0
flag = 1
l = 1
r = max(lmax,rmax)
x = 0
##for x in range(1,max(lmax,rmax)+1):
while (r-l)>1:
    x = (l+r)//2
    count = 0
    for i in range(n):
        count+=(L[i]//x)*(R[i]//x)
    if count<k:
        r = x
    elif count>=k:
        l = x
print(x)

细节:

仍然有一些细节没有处理好。

细节处理:

原因是我们最后用二分法求出来的数据会有两个,一个是左边的l,一个是右边的r,需要分成两大类去处理,一种是出先当x=r的时候,这个时候计算出来的coun如果小于k那么就需要输出x-1;第二种情况,当x=l的时候,计算出来可能x+1对应的count仍然大于k。分成这两大类来处理。

最终的AC代码:

import os
import sys

n,k = map(int,input().split())
L = []
R = []
for i in range(n):
    a,b = map(int,input().split())
    L.append(a)
    R.append(b)
lmax = max(L)
rmax = max(R)
count = 0
l = 1
r = max(lmax,rmax)
x = 0
while (r-l)>1:
    x = (l+r)//2
    count = 0
    for i in range(n):
        count+=(L[i]//x)*(R[i]//x)
    if count<k:
        r = x
    elif count>=k:
        l = x
count = 0
for i in range(n):
    count+=(L[i]//x)*(R[i]//x)
if count<k:
    print(x-1)
else:
    count = 0
    for i in range(n):
        count+=(L[i]//(x+1))*(R[i]//(1+x))
    if count>=k:
        print(x+1)
    else:
        print(x)

每日一句

摘自《《晚熟的人》》:

一个人,特别想成为一个什么,但始终没成为一个什么,那么这个什么也就成了他一辈子第一魂牵梦萦的什么

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

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

相关文章

硬盘图片丢失怎么办?看看这常见的三种恢复方法

电脑硬盘能够帮助我们存储各种各样的数据&#xff0c;比如图片数据&#xff0c;而随着这些充满回忆的图片积累的越来越多&#xff0c;难免会手误删除或其他原因导致丢失&#xff0c;那么对于电脑硬盘上丢失的图片如何恢复呢&#xff1f;在这里你可以了解到硬盘图片丢失常见原因…

python—subprocess模块常用方法介绍

目录 subprocess.run() subprocess.Popen() subprocess.call() subprocess.check_call() subprocess.getstatusoutput() subprocess.getoutput() subprocess.check_output() subprocess是子流程&#xff0c;即进程的意思&#xff0c;该模块可以启动一个新进程&#xff0…

印度电线标准IS 694(R2020),印度插头标准IS 1293(R2020)

印度电线标准IS 694&#xff08;R2020) https://download.csdn.net/download/std86021/87328675POLYVINYLCHLORIDEINSULATEDUNSHEATHEDANDSHEATH更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/std86021/87328675 补丁一&#xff1a;IS694Amd…

已获1000 万美元战略融资,Web3链游#Delysium 有何魔力?

这周社区推文关注了AIGC在游戏领域中的创新应用&#xff0c;在Web3领域中&#xff0c;有哪些值得关注的链游项目呢&#xff1f;Mixlab小杜AIGC 与游戏机制创新玩法结合已成为潮流趋势&#xff0c;如游戏内容资产生成、智能NPC设计与自定义游戏玩法等都有非常大的探索空间。Web3…

【ACWING】【BFS】【844走迷宫】【845八数码】

一、走迷宫 给定一个 nm的二维整数数组&#xff0c;用来表示一个迷宫&#xff0c;数组中只包含 0 或 1&#xff0c;其中 0表示可以走的路&#xff0c;1 表示不可通过的墙壁。 最初&#xff0c;有一个人位于左上角 (1,1)处&#xff0c;已知该人每次可以向上、下、左、右任意一…

CVE复现1

1 CVE-2022-22980 spring Data MongoDB SpEL 表达式注入,Spring Data MongoDB应用程序在对包含查询参数占位符的SpEL表达式使用Query或Aggregation注解的查询方法进行值绑定时&#xff0c;如果输入未被过滤&#xff0c;则容易受到SpEL注入攻击。 影响范围 Spring Data Mongo…

190:vue+openlayers 调整卫星运动的播放速度,展示运动轨迹

第190个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中利用两行根数计算卫星在某一时刻的位置点,利用时间循环,定位出不同的位置,呈现动画的效果。文中利用slider的改变来确定当前时间为开始时间,slider的值为加速倍数,每个setTimeout为10毫秒,更新…

【博客系统】前端页面

博客系统 实现一个简单的博客系统。 当前先完成页面设计部分&#xff0c;通过学习的前端知识来构建出网页。 主要分成四个部分&#xff1a; 博客列表页博客正文页博客登陆页博客编辑页 预期效果 博客列表页效果 博客详情页效果 博客登陆页效果 博客编辑页效果 实现博客列…

C++数据结构--跳表的思想--手把手教你实现跳表--0721

1、 跳表--skiplist skiplist本质上是一种查找结构&#xff0c;跟平衡搜索树和哈希表的价值是一样的。跳表首先是一个链表&#xff0c;它是在链表的基础上发展的。但一般的链表进行查找数据只能全部遍历&#xff0c;时间复杂度为O(n)。 William Pugh的优化&#xff1a; 假如每…

Kafka一次线上问题

线上问题&#xff1a; Kafka: 客户说Broker不时会发生些错误日志&#xff0c;也看到topic的tps下降很快很明显&#xff0c; 日志看是ISR在不断的伸缩&#xff0c; 监控发现发生问题时的CPU、IO、磁盘都没有瓶颈 再查看堆栈信息&#xff1a;可看到关键信息&#xff1a; 有锁…

R语言raster包批量读取单一或大量栅格图像

本文介绍基于R语言中的raster包&#xff0c;读取单张或批量读取多张栅格图像&#xff0c;并对栅格图像数据加以基本处理的方法。 1 包的安装与导入 首先&#xff0c;我们需要配置好对应的R语言包&#xff1b;前面也提到&#xff0c;我们这里选择基于raster包来实现栅格图像数据…

TestStand-单执行界面

文章目录用户界面运行流程例程创建前面板设置用户界面主窗口前面板控件配置用户事件用户界面运行流程 用户界面设计的基本元素&#xff1a;管理控件、可视化控件、连接、应用程序启动及关闭、注册事件、处理事件。 LabVIEW中通过Regesiter Event Callback注册事件。 LabVIEW-Te…

flink内存管理, 增加Task内存大小,减少ManageMemory, network内存的方法

问题描述 flink默认分配的内存&#xff0c;不合理&#xff0c;jvm 堆内存太小&#xff0c;其他内存太大。向yarn申请8G内存&#xff0c;最后分配到heap的大小才3.2G&#xff0c;不是让人抓狂吗&#xff1f; 以上是&#xff0c;向yarn申请8G内存&#xff0c;实时分配的内存是上…

“破壁者”氚云,打破低代码之困

互联网云大厂的“火”已经烧红了低代码领域的半边天。 自低代码在国内盛行以来&#xff0c;尤其是时至2022年末&#xff0c;阿里、腾讯、华为等云大厂的跑马圈地仍如火如荼&#xff0c;动作密集程度堪比机关枪。 面对日益增长的企业数字化业务需求&#xff0c;产品经理只需少…

编译器设计(十三)——指令调度

一、简介 对程序块或过程中的操作进行排序以有效利用处理器资源的任务称为指令调度&#xff08;instruction scheduling&#xff09;。调度器的输入是由目标机汇编语言操作组成的一个部分有序的列表&#xff0c;输出是同一列表的一个有序版本。 一组指令的执行时间严重依赖于…

什么是云存储?有什么优势?

在云计算中&#xff0c;用户将数据保存在远程位置。它可以通过互联网连接访问&#xff0c;而不是在本地或物理上(在硬盘上)访问。而云存储成为最实用有效的方式之一。它有助于在线存储数据。 什么是云存储? 云存储是指安全、全局和可扩展的数据存储。它用于存储不可变数据&…

智慧工厂的大脑——APS生产排程系统

生产计划排程是生产管理中的核心工作&#xff0c;或许很多人不同意这个观点&#xff0c;只是因为这个观点的前提是生产计划排程在生产管理中真正起到了作用&#xff0c;目前国内制造业的现状还不能体现出生产计划排程的真正作用&#xff0c;所以也没有人认为它是最核心的工作&a…

蓝桥杯Python练习题11-闰年判断

资源限制   内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述   给定一个年份&#xff0c;判断这一年是不是闰年。 当以下情况之一满足时&#xff0c;这一年是闰年&#xff1a;   1. 年…

“集合划分问题”如何解决?这里教你个妙招,轻松掌握这类问题~

目录 “集合划分”这类问题的解题思路 一、划分为k个相等的子集 二、火柴拼正方形 “集合划分”这类问题的解题思路 这类题一般都会描述成这个样子&#xff1a;“给你一个数组&#xff0c;是否能将他划分成n个数值相等的子集&#xff1f;”&#xff0c;再或者有些可能题目描述…

MinIO高性能对象存储

一、MinIO高性能对象存储 MinIO是一个高性能对象存储解决方案&#xff0c;它提供了与Amazon Web Services S3兼容的API&#xff0c;并支持所有核心S3功能。 MinIO旨在部署任何地方—公共或私有云、裸机基础设施、协调环境和边缘基础设施。本文档说的是Windows平台上MinIO部署的…