十四届蓝桥杯STEMA考试Python真题试卷第二套第四题

devtools/2024/11/7 7:22:43/

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第四题:糖果罐调整
该题解通过贪心策略在每一步都选择对当前状态最有利的操作,从而达到最少调整次数的目标。

题目描述

现有 N 罐糖果,且已知每罐糖果的初始数量。现给出两个数值 L 和 R(L≤R),需要把每罐糖果的数量调整为:L≤任意一罐糖果的数量≤R。调整的方式是每次从其中一罐糖果中拿出 1 块放到其他糖果罐中。

请你计算出最少调整几次才能使每罐糖果的数量都在 L 到 R 范围之间,如果不能将每罐糖果都调整到 L 到 R 范围之间则输出-1。

例如:
N = 2,2 罐糖果的初始数量为 3 和 8,L = 3,R = 6,通过调整使得:3≤任意一罐糖果的数量≤6,调整方式如下:
第一次从初始数量为 8 的罐中拿 1 块放到初始数量为 3 的罐中,调整后为(4,7);
第二次从数量 7 的罐中拿 1 块放到数量为 4 的罐中,调整后为(5,6);
故最少调整 2 次。

输入描述:
第一行输入一个正整数 N(N<30),表示糖果的罐9数
第二行输入 N 个正整数(1≤正整数≤100),表示每罐糖果的初始数量,每个正整数之间以一个空格隔开
第三行输入两个正整数 L,R(1≤L≤R≤100),表示每罐糖果的数量所要调整的范围,两个正整数之间以一个空格隔开

输出描述:
输出一个整数,表示最少调整几次才可以使 N 罐糖果数量都在 L 和 R 范围之间,如果不能将 N 罐糖果调整到L 到 R 范围之间则输出-1

样例输入:

2
3 8
3 6

样例输出:

2

参考答案

python">def min_adjustments_to_balance_candies(n, candies, L, R):total_candies = sum(candies)# 计算糖果总量的最小和最大需求min_needed = n * Lmax_needed = n * R# 如果总糖果数不在 [min_needed, max_needed] 范围内,无法调整if total_candies < min_needed or total_candies > max_needed:return -1# 计算多余糖果数和不足糖果数excess = 0deficit = 0for candy in candies:if 

http://www.ppmy.cn/devtools/131950.html

相关文章

基于 Encoder-Decoder 架构的大语言模型

基于 Encoder-Decoder 架构的大语言模型 Encoder-Decoder 架构 为了弥补 Encoder-only 架构在文本生成任务上的短板&#xff0c;Encoder-Decoder 架构在其基础上引入了一个解码器&#xff08;Decoder&#xff09;&#xff0c;并采用交叉注意力机制来实现编码器与解码器之间的…

pycharm 使用

前期配置 1、检查 Python 安装路径&#xff1a; 确保 E:\tools\Pyn392_EN_x64\python.exe 是你正确的 Python 安装路径。你可以在终端或命令提示符中运行这个命令&#xff0c;确保能正常找到Python。 E:\tools\Pyn392_EN_x64\python.exe --version2、检查 pip 是否正确安装&…

【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)

论文地址&#xff1a;https://arxiv.org/pdf/2302.07483 这篇文章的标题是《EdgeYOLO: An Edge-Real-Time Object Detector》&#xff0c;由中国北京理工大学的Shihan Liu、Junlin Zha、Jian Sun、Zhuo Li和Gang Wang共同撰写。这篇论文提出了一个基于最新YOLO框架的高效、低复…

【计算机视觉】深入浅出SLAM技术原理

引言 SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;同步定位与建图&#xff09;是机器人学和计算机视觉中的一个重要技术&#xff0c;它允许机器人在未知环境中自主导航&#xff0c;同时构建环境的地图并确定自身的精确位置。本文将详细介绍SLAM技术的基…

ThingsBoard规则链节点:Push to Edge节点详解

引言 1. Push to Edge 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 边缘计算 3.2 本地数据处理 3.3 实时响应 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管…

Django替换现有用户模型(auth_user)

当Django现有的用户模型信息不满足我们的需求时&#xff0c;可以建立另一个数据模型来替代现有的。 一、设置settings文件 AUTH_USER_MODELaccounts.User 在settings文件中配置上述信息&#xff0c;引号内为&#xff1a;模块名.数据模型名 二、继承AbstractUser 在要替代au…

ServletContext,Cookie,HttpSession的使用

ServletContext对象 ServletContext对象官方也称servlet上下文。服务器会为每一个Web应用创建一个ServletContext对象&#xff0c;这个对象全局唯一&#xff0c;而且Web应用中所有的Servlet都共享这个对象。 ServletContext对象的作用 相对路径转绝对路径 servletContext.g…

RabbitMQ自动发送消息工具(自动化测试RabbitMQ)

点击下载《RabbitMQ自动发送消息工具(自动化测试RabbitMQ)》 1. 前言 在现代分布式系统中&#xff0c;消息队列扮演着至关重要的角色&#xff0c;用于在不同的服务或组件之间传递数据。RabbitMQ作为一个流行的开源消息代理软件&#xff0c;被广泛用于实现异步通信、负载均衡和…