首页 > 编程语言 >蓝桥杯备考冲刺必刷题(Python) | 3236 小蓝的零花钱

蓝桥杯备考冲刺必刷题(Python) | 3236 小蓝的零花钱

时间:2024-11-29 18:57:59浏览次数:7  
标签:even le 3236 Python mark 蓝桥 range 数组 odd

学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。

附上汇总贴:蓝桥杯备考冲刺必刷题(Python) | 汇总-CSDN博客


【题目描述】

小蓝和小桥正在玩一个游戏,他们有一个长度为$$n$$的序列,其中既有偶数也有奇数,且偶数和奇数的数量相等。

小蓝有一些零花钱,他可以用这些钱来做一个特殊的操作:他在序列中选取一个位置,然后在这个位置上将序列分成两段,要求每一段中偶数和奇数的数量都相等。小蓝想要用他的零花钱尽可能多地进行这个操作,但每次操作都需要花费代价。具体而言,每次选取的位置可以看成是对序列进行切割,切割需要花费的代价为切割两端的元素的差的绝对值。小蓝想知道,在他的预算范围内,最多能进行多少次操作。

请你帮助小蓝计算最多可以进行的操作次数。

【输入】

第一行包含两个整数$$n$$和$$B(2\le n\le 100,1\le B\le 100)$$,表示序列的长度和小蓝拥有的零花钱数。

第二行包含$$n$$个整数$$a_1,a_2,\dots,a_n(1\le a_i\le 100)$$,表示给定的序列(保证在这$$n$$个元素中奇数的个数等于偶数的个数)。

【输出】

输出一个整数,表示在小蓝的预算范围内,能够进行的最多操作次数。

【输入样例】

6 3
1 2 3 4 5 6

【输出样例】

2

【代码详解】

 

 

82b741684e758f95b97c777cac1897b7.png

 

n, b = [int(i) for i in input().split()]  # 输入n和b
a = [0 for i in range(105)]  # 初始化a数组
ls = [int(i) for i in input().split()]  
for i in range(1, n+1):  # 给a数组赋值
    a[i] = ls[i-1]
odd = [0 for i in range(105)]  # 初始化奇数个数数组
even = [0 for i in range(105)]  # 初始化偶数个数数组
c = [0 for i in range(105)]  # 初始化切割代价数组
for i in range(1, n+1):  # 遍历n个零花钱
    if a[i]%2==1:  # 进行奇偶判断
        odd[i]=odd[i-1]+1
        even[i]=even[i-1]
    else:
        odd[i]=odd[i-1]
        even[i]=even[i-1]+1
mark = 0
for i in range(1, n):  # 遍历奇偶数组
    if odd[i]==even[i]:  # 对于奇偶数相等的位置,则可以切割
        c[mark]=abs(a[i]-a[i+1])  # 计算a[i]与a[i+1]的绝对值,并记录到c数组中
        mark+=1
c = sorted(c[:mark])  # 对c数组按照从小到大方式排序
tot = 0 
cnt=0
for i in range(mark):  # 遍历c数组
    if tot+c[i]<=b:  # 如果tot加上c[i]可以满足小于等于b
        tot+=c[i]  # 则进行累加
        cnt+=1  # 切割数自增1
    else:  # 否则退出循环
        break
print(cnt)  # 输出切割数

【运行结果】

6 3
1 2 3 4 5 6
2

 

标签:even,le,3236,Python,mark,蓝桥,range,数组,odd
From: https://blog.csdn.net/guolianggsta/article/details/136302010

相关文章

  • 使用 Vyper 和 Python 进行自动化登录并处理验证码
    虽然Vyper本身并不适合直接处理网页自动化任务,但我们可以通过Vyper来编写控制逻辑,并利用Python进行验证码的处理和图像识别。我们的目标是创建一个智能合约,模拟通过调用Python脚本来完成验证码的识别与登录过程。环境准备要完成自动化登录并处理验证码,我们需要以下工具......
  • 使用 Nim 和 Python 自动化处理登录和验证码
    项目概述这个项目的目标是实现一个自动化登录过程,其中包括:使用Nim编写自动化脚本来控制浏览器。通过Selenium完成自动化操作。使用外部Python脚本处理验证码的识别。2.环境准备Nim编程语言:用于编写主脚本来自动化登录操作。Selenium(Python):用Python编写验证......
  • python中的io操作
    以下是Python中I/O操作的一些示例:一、文件输入输出写入文件:#打开文件以写入模式,如果文件不存在则创建withopen('output.txt','w')asf:f.write('Hello,world!')读取文件:#打开文件以读取模式withopen('input.txt','r')asf:content=f.read......
  • 【Python入门】绘制你的桌面应用:用Python WxPython库打造用户界面
    ......
  • python 如何伪装邮箱
    '''格式:用户名@服务器域名用户名:由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成;只能以数字或字母开头和结尾,用户名长度为4~18个字符'''import random   #随机模块import string   #定义了一些常用的常量 with open("电子邮件地址.txt",'w')as 电......
  • python字符串怎么去空格
    1、strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.strip()'a b c'2、lstrip()方法,去除字符串开头的空格>>> a = " a b c ">>> a.lstrip()'a b c '3、rstrip()方法,去除字符串结尾的空格>>> a = ......
  • Python基础1
    0.关于python2和python3的区别1.默认的编码方式不同python2:ASCII编码python3:UTF-8编码1.输入函数名不同python2:name=raw_input('请输入姓名')python3:name=input('请输入姓名')2.对整型数的处理不同python232bit机器上的整型占32bit,64bit机器上的整型占64b......
  • 毕业项目推荐:基于深度学习的茶叶等级检测系统(python+卷积神经网络)
    文章目录概要一、整体资源介绍技术要点功能展示:功能1支持单张图片识别功能2支持遍历文件夹识别功能3支持识别视频文件功能4支持摄像头识别功能5支持结果文件导出(xls格式)功能6支持切换检测到的目标查看二、数据集三、算法介绍1.YOLOv8概述简介2.YOLOv5概述简......
  • 毕业项目推荐:基于深度学习的PCB板缺陷检测系统(python+卷积神经网络)
    文章目录概要一、整体资源介绍技术要点功能展示:功能1支持单张图片识别功能2支持遍历文件夹识别功能3支持识别视频文件功能4支持摄像头识别功能5支持结果文件导出(xls格式)功能6支持切换检测到的目标查看二、数据集三、算法介绍1.YOLOv8概述简介2.YOLOv5概述简......
  • 蓝桥2129 技能升级(二分)
    小蓝最近正在玩一款RPG游戏。他的角色一共有 N个可以加攻击力的技能。其中第 i 个技能首次升级可以提升 Ai​ 点攻击力,以后每次升级增加的点数都会减少 Bi。Ai/Bi (上取整)次之后,再升级该技能将不会改变攻击力。现在小蓝可以总计升级 M 次技能,他可以任意选择......