蓝桥:硬币兑换(python)

问题描述:

小蓝手中有2023种不同面值的硬币,这些硬币全部是新版硬币,其中第i(1≤i≤2023)种硬币的面值为i,数量他为i个。硬币兑换机可以进行硬币兑换,兑换规则为:交给硬币兑换机两个新版硬币coin1和coin2,硬币兑换机会兑换成一个面值为coin1十coin2的旧版硬币。

小蓝可以用自己有的硬币进行任意次数兑换,假设最终小蓝手中有K种不同面值的硬币(只看面值, 不看新旧) 第i(1≤i≤K)种硬币的个数为sumi。小蓝想要使得

max sum1, sum2,…, sumK的值达到最大,请你帮他计算这个值最大是多少。

注意硬币兑换机只接受新版硬币进行兑换,并且兑换出的硬币全部是旧版硬币。

思路:

这道题做起来并不难,难的是理解题意,这道题我就没读懂,之后复盘才理解意思。
题目主要意思是(方便理解这里换个概念),现在有1~2023个硬币,第i个硬币有i枚,现在可以把任意两个硬币换成一个纸币,纸币大小为两硬币大小的和,如果任意兑换,那种情况下相同价格的纸币数量最多。
这样就可以用暴力来求解,列出所有组合的可能,并求出组合数最多的那一个

创建一个结果集列表表示:两个硬币能兑换出的所有结果,共4046种然后遍历所有情况,例如2和3兑换5,那么存入列表时就是result[2+3]=2,意思为兑换成5的情况有2次。

代码及详细注释:

# 创建一个结果集表示:两个硬币能兑换出的所有结果,共4046种
res = [0] * 4047# 遍历范围从1到2023
for i in range(1, 2024):# 再次遍历范围从i+1到2023for j in range(i + 1, 2024):# 将'res'列表中索引为(i+j)的元素增加i, 因为兑换的次数取决于最小的硬币数,所以加ires[i + j] += i# 找出'res'列表中的最大值并打印
print(max(res))

结果:

在这里插入图片描述
这么简单的题当时没做出来。。。

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

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

相关文章

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式,发现分子都是1,分母从1~100,所以可以使用for循环产生1~100之间的数。 另一个问题是,如何产生正负交替的符号?很简单,这个符号本质上就是往每一项前面乘一个系数:一或者负一。所以只需…

008:安装Docker

安装Docker 如果不太熟悉Linux命令,不想学习Linux命令,可以直接看文末NAS面板章节,通过面板,像使用Window一样操作NAS。 一、安装 Docker 1.安装 Docker wget -qO- https://get.docker.com/ | sh2.启动 Docker 服务 sudo sys…

算法练习:二分查找

目录 1. 朴素二分查找2. 在排序数组中查找元素的第一个和最后一个位置3. 搜索插入位置4. x的平方根5. 山脉数组的峰值索引6. 寻找峰值7. 寻找旋转排序数组中的最小值8. 点名 1. 朴素二分查找 题目信息: 题目链接: 二分查找二分查找的使用前提为数据具有&…

掌握高级设计原则:Java中的过滤器模式解析与实战演练,构建灵活且可扩展的系统架构

过滤器模式是一种结构型设计模式,它允许开发者使用不同的标准来过滤一组对象,并通过逻辑运算以解耦的方式将它们联系起来。 过滤器模式的核心在于提供了一个处理对象的机制,这个机制可以根据一个或多个标准来决定哪些对象应该被接受、哪些应…

解析KafkaConsumer类的神奇之道

欢迎来到我的博客,代码的世界里,每一行都是一个故事 解析KafkaConsumer类的神奇之道 前言KafkaConsumer双线程设计主线程(消费线程):心跳线程:示例代码: KafkaConsumer线程不安全线程安全的替代…

jetson nano——编译一些包的网址导航,pyside2,qt(持续更新)

目录 1.PySide2下载地址2.tesserocr下载地址3.Qt下载地址4.OpenSSL官网5.latex编译器下载地址5.1MikTex5.2TeX Live 1.PySide2下载地址 https://download.qt.io/official_releases/QtForPython/pyside2/ 如下图: 2.tesserocr下载地址 https://github.com/simonflue…

PTA冰岛人

作者 陈越 单位 浙江大学 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下: 冰岛人沿用的是维京人古老的父系姓制,孩子的姓…

行业突破!四信实现低延时摄像头弱网状态100ms以内实时传输

随着人工智能、大数据、区块链等技术在城市中快速发展,人们日常生活中已经离不开网络的支撑,而实现“人与人”、“人与物”及“物与物”之间高速连接应用的“时延”,是网络支撑中最重要的存在。 以城市生活例子为例,当网络延时出现…

通过日志恢复sql server数据库

在SQL Server中,通过日志恢复数据库是一个精细的过程,主要用于在数据库出现错误、数据丢失或需要回滚到特定时间点时恢复数据。以下是一般步骤概述: 设置恢复模式: 首先,数据库必须配置为“完整恢复模式”或“大容量…

【Miniconda】Linux系统中 .condarc 配置文件的位置一般在哪里

【Miniconda】Linux系统中 .condarc 配置文件的位置一般在哪里 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到…

3. ElasticSearch搜索技术深入与聚合查询实战

1. ES分词器详解 1.1 基本概念 分词器官方称之为文本分析器,顾名思义,是对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 1.2 …

疑问彻底搞懂TIME_WAIT状态为什么等待2MSL的时长

文章目录 1. TIME_WAIT状态2. 等待2MSL原因 1. TIME_WAIT状态 TIME_WAIT状态是TCP连接关闭过程中的一个状态,它表示连接已经被关闭,但是仍然在等待一段时间以确保远端接收到连接关闭的确认消息。在这个状态下,连接不再传输数据,但…

单片机FLASH深度解析和编程实践(上)

本篇文章主要针对单片机FLASH编程和FLASH基本原理进行学习分享。以STM32单片机作为实例进行编程实训。 关于FLASH操作的相关寄存器及编程,大家可以参考下一篇文章: 单片机FLASH深度解析和编程实践(下)-CSDN博客 目录 一、STM32编程方式 二、…

Ansys Lumerical | 激光雷达天线仿真

附件下载 联系工作人员获取附件 在本文中,我们将了解如何根据激光雷达应用需求设计和优化相控阵光栅天线。 概述 激光雷达(LIDAR)是“light detection and ranging”的简称,近年来由于在机器人、自动驾驶汽车、高精度测绘等领域…

万物互联的价值

随着我们习惯了万物互联,我们将需要改变我们的行为和使用互联网的方式。这并不像看起来那么困难。毕竟,自 20 世纪 90 年代中期互联网普及以来,你们中的许多人都会经历过各种经历的变化。你们中的许多人已经看到了网络邮件、在线电影和音乐、…

挑战杯 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

基于comsol七芯光纤超模模拟分析

本期教程主要向大家介绍一期采用comsol有限元分析软件进行七芯光纤模拟分析的模拟教程。首先介绍一下基本知识点 七芯光纤超模理论(Supermode Theory for Seven-Core Fibers)涉及一种特殊类型的多芯光纤(MCF)技术。在这里&#x…

【消息队列开发】 测试MessageFileManager(对硬盘中的消息操作)类

文章目录 🍃前言🎄测试流程🌴准备工作🌲测试创建队列功能🌳测试统计文件的读写🎋测试将相应消息放入文件中🎍测试读文件里的消息到内存🍀测试删除消息😎测试垃圾回收⭕总…

MySQL行锁核心知识介绍

MySQL的行锁是数据库中用于控制并发访问的一种机制。它允许在数据库的行级别上实现锁定,从而允许多个事务同时修改不同行的数据,而不会相互干扰。这种锁机制可以提高数据库的并发性能,减少锁争用,提高事务的吞吐量。在本教程中&am…

电视盒子解析安装包失败,安卓4.4安装不了kodi的解决方法,如何安装kodi

有些安卓电视或者电视盒子的安卓系统版本太低、自身架构或者屏蔽了安装其他应用的功能,下载的Kodi apk安装包提示无法安装,解析程序包时出现问题、解析出错无法安装、[INSTALL_FAILED_OLDER_SDK]、此应用与您的电视不兼容。 解决方法: 1、3…