2025年十六届蓝桥杯Python B组原题及代码解析

news2025/4/19 7:42:12

相关试题可以在洛谷上测试用例:

2025 十六届 蓝桥杯 Python B组

试题 A:攻击次数

在这里插入图片描述

答案:103

print(103)

代码:

# 初始化敌人的血量
x = 2025

# 初始化回合数
turn = 0

# 模拟攻击过程
while x > 0:
    # 回合数加一
    turn += 1

    # 第一个英雄的攻击
    hero1 = 5

    # 第二个英雄的攻击
    if turn % 2 == 1:  # 奇数回合
        hero2 = 15
    else:  # 偶数回合
        hero2 = 2

    # 第三个英雄的攻击
    if turn % 3 == 1:  # 回合数除以 3 的余数为 1
        hero3 = 2
    elif turn % 3 == 2:  # 回合数除以 3 的余数为 2
        hero3 = 10
    else:  # 回合数除以 3 的余数为 0
        hero3 = 7

    # 总攻击值
    total = hero1 + hero2 + hero3

    # 更新敌人的血量
    x -= total

# 输出游戏结束时的回合数
print(turn)

试题 B:最长字符串

在这里插入图片描述

答案:afplcu

print('afplcu')

将word.txt文件与你的python代码文件保存在同一个文件夹下:

在这里插入图片描述

# 读取 words.txt 文件中的单词
with open("words.txt", "r") as f:
    ws = [line.strip() for line in f]

# 按长度和字典序排序
ws.sort(key=lambda x: (len(x), x))

# 初始化优美字符串集合
bs = set()

# 动态规划:判断每个单词是否是优美字符串
for w in ws:
    if len(w) == 1:
        bs.add(w)
    else:
        pre = ''.join(sorted(w[:-1]))
        if any(''.join(sorted(s)) == pre for s in bs):
            bs.add(w)

# 找到最长的优美字符串
ml = max(len(w) for w in bs)
lbs = [w for w in bs if len(w) == ml]

# 输出字典序最小的结果
print(min(lbs))

试题 C:LQ图形

在这里插入图片描述

代码:

w, h, v = map(int, input().split())

for i in range(h):
    for j in range(w):
        print("Q", end = "")
    print()

for i in range(w):
    for j in range(w + v):
        print("Q", end = "")
    print()

试题 D:最多次数

在这里插入图片描述

代码:

# 获取输入字符串
s = input()

# 初始化计数器
count = 0

# 遍历字符串,检查每个长度为3的子串
for i in range(len(s) - 2):
    substring = s[i:i+3]
    
    # 检查是否是目标模式之一
    if substring in {'lqb', 'lbq', 'qlb', 'qbl', 'blq', 'bql'}:
        count += 1
        # 为了避免重复计数,可以在找到一个模式后跳出当前循环
        break

# 输出不同模式的数量
print(count)

试题 E:A · B Problem

在这里插入图片描述

代码:

# 读取输入的 L 值
L = int(input())
max_L = L  # 最大范围为 L

# 预处理每个数的约数数目
d = [0] * (max_L + 1)  # 创建一个数组 d,用于存储每个数的约数数目
for i in range(1, max_L + 1):
    # 对于每个 i,将其所有倍数的约数计数加 1
    for j in range(i, max_L + 1, i):
        d[j] += 1

# 计算前缀和数组
prefix_sum = [0] * (max_L + 1)  # 创建一个数组 prefix_sum,用于存储约数数目的前缀和
current_sum = 0  # 当前的累积和
for i in range(1, max_L + 1):
    current_sum += d[i]  # 累加当前数的约数数目
    prefix_sum[i] = current_sum  # 将累积和存入前缀和数组

# 计算总答案
total = 0  # 初始化总答案
for m in range(1, max_L + 1):
    remainder = L - m  # 计算剩余值,即 L - m
    if remainder >= 0:  # 如果剩余值非负,则可以继续计算
        # 累加满足条件的组合数
        # d[m] 表示 m 的约数数目,prefix_sum[remainder] 表示剩余值的约数数目的前缀和
        total += d[m] * prefix_sum[remainder]

# 输出最终结果
print(total)

试题 F:园艺

在这里插入图片描述

代码:

def max_trees(n, heights):
    # dp[i] 是一个字典,表示以第 i 棵树为结尾时,不同间隔 d 对应的最长递增子序列长度
    dp = [{} for _ in range(n)]
    
    # 初始化:每棵树单独成一个子序列
    for i in range(n):
        dp[i][0] = 1  # 初始间隔为 0,长度为 1
    
    # 动态规划填表
    for i in range(n):
        for j in range(i):
            if heights[j] < heights[i]:  # 只有当高度递增时才更新
                d = i - j  # 计算间隔
                if d in dp[j]:
                    dp[i][d] = max(dp[i].get(d, 1), dp[j][d] + 1)
                else:
                    dp[i][d] = max(dp[i].get(d, 1), 2)  # 至少长度为 2
    
    # 找到所有 dp[i][d] 中的最大值
    max_length = 1
    for i in range(n):
        if dp[i]:
            max_length = max(max_length, max(dp[i].values()))
    
    return max_length

# 输入处理
n = int(input())
heights = list(map(int, input().split()))

# 输出结果
print(max_trees(n, heights))

试题 G:书架还原

在这里插入图片描述

代码:

def func(n, a):
    visited = [False] * (n + 1)  # 标记是否访问过,索引从 1 开始
    cycles = 0  # 环的数量

    for i in range(1, n + 1):  # 遍历每本书
        if not visited[i]:  # 如果未访问过
            cycles += 1  # 发现一个新的环
            x = i
            while not visited[x]:  # 沿着环追踪
                visited[x] = True
                x = a[x - 1]  # 下一本书的位置(注意索引从 0 开始)

    return n - cycles  # 最少操作次数


# 输入处理
n = int(input())
a = list(map(int, input().split()))

# 输出结果
print(func(n, a))

试题 H:异或和

在这里插入图片描述

代码:

n = int(input())  # 输入数组长度
a = list(map(int, input().split()))  # 输入数组
res = 0  # 最终结果

for b in range(31):  # 遍历每一位(0到30位)
    m = 1 << b  # 当前位的掩码,用于提取该位的值
    c = [0, 0]  # 用于统计当前位为0和1的数量
    s = [0, 0]  # 用于记录当前位为0和1的索引和
    cur = 0  # 当前位的贡献值

    for i in range(n):  # 遍历数组中的每个元素
        bit = (a[i] >> b) & 1  # 提取当前元素在当前位的值(0或1)
        cur += c[1 - bit] * i - s[1 - bit]  # 计算当前位的贡献值
        c[bit] += 1  # 更新当前位的计数
        s[bit] += i  # 更新当前位的索引和

    res += cur * m  # 将当前位的贡献值乘以掩码,累加到最终结果

print(res)  # 输出最终结果

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

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

相关文章

数据清洗到底在清洗什么?

在大数据时代&#xff0c;数据是每个企业的五星资产&#xff0c;被誉为“新石油”&#xff0c;但未经处理的数据往往参杂着大量“杂质”。这些“脏数据”不仅影响分析结果&#xff0c;严重的甚至误导企业决策。数据清洗作为数据预处理的关键环节&#xff0c;正是通过“去芜存菁…

Microsoft Azure 基础知识简介

Microsoft Azure 基础知识简介 已完成100 XP 2 分钟 Microsoft Azure 是一个云计算平台&#xff0c;提供一系列不断扩展的服务&#xff0c;可帮助你构建解决方案来满足业务目标。 Azure 服务支持从简单到复杂的一切内容。 Azure 具有简单的 Web 服务&#xff0c;用于在云中托…

数据库ALGORITHM = INSTANT研究过程

背景 偶然在团队中发现同事大量使用 ALGORITHM INSTANT 更新字段&#xff0c;根据固有的理解&#xff0c;平时字段的更新必然会涉及到表结构的更改&#xff0c;印象中数据库会加入MDL锁去保证表数据的一致性。 但是听说在Mysql8.0特性中&#xff0c;表明在更新字段的时候此方法…

n8n 为技术团队打造的安全工作流自动化平台

AI MCP 系列 AgentGPT-01-入门介绍 Browser-use 是连接你的AI代理与浏览器的最简单方式 AI MCP(大模型上下文)-01-入门介绍 AI MCP(大模型上下文)-02-awesome-mcp-servers 精选的 MCP 服务器 AI MCP(大模型上下文)-03-open webui 介绍 是一个可扩展、功能丰富且用户友好的…

基于Python的App流量大数据分析与可视化方案

一、引言 App流量数据通常包括用户的访问时间、停留时间、点击行为、页面跳转路径等信息。这些数据分散在不同的服务器日志、数据库或第三方数据平台中&#xff0c;需要通过有效的技术手段进行整合和分析。Python在数据科学领域的广泛应用&#xff0c;得益于其简洁的语法、强大…

【Linux 并发与竞争实验】

【Linux 并发与竞争实验】 之前学习了四种常用的处理并发和竞争的机制&#xff1a;原子操作、自旋锁、信号量和互斥体。本章我们就通过四个实验来学习如何在驱动中使用这四种机制。 文章目录 【Linux 并发与竞争实验】1.原子操作实验1.1 实验程序编写1.2 运行测试 2.自旋锁实验…

wx219基于ssm+vue+uniapp的教师管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

leetcode0079. 单词搜索-medium

1 题目&#xff1a; 单词搜索 官方标定难度&#xff1a;中 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字…

SvelteKit 最新中文文档教程(20)—— 最佳实践之性能

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …

在多系统环境中实现授权闭环,Tetra Pak 借助CodeMeter打造食品工业的安全自动化体系

一、 行业背景与安全新挑战 在食品加工自动化不断深化的背景下&#xff0c;食品安全、功能安全与知识产权保护的需求日益迫切。Tetra Pak 作为全球领先的食品加工和包装解决方案提供商&#xff0c;业务遍布 160 多个国家&#xff0c;涵盖从配料混合、碳酸化处理到全线自动包装。…

B端可视化方案,如何助力企业精准决策,抢占市场先机

在当今竞争激烈的商业环境中&#xff0c;企业需要快速、准确地做出决策以抢占市场先机。B端可视化方案通过将复杂的企业数据转化为直观的图表和仪表盘&#xff0c;帮助企业管理层和业务人员快速理解数据背后的业务逻辑&#xff0c;从而做出精准决策。本文将深入探讨B端可视化方…

0701表单组件-react-仿低代码平台项目

文章目录 1 react表单组件1.1 受控组件 (Controlled Components)示例代码&#xff1a; 1.2 非受控组件 (Uncontrolled Components)示例代码&#xff1a; 2 AntD表单组件实战2.1 开发搜索功能2.2 开发注册页2.3 开发登录页2.4 表单组件校验 结语 1 react表单组件 input表单组件…

【adb】bat批处理+adb 自动亮屏,自动解锁屏幕,启动王者荣耀

准备adb 下载 需要确认是否安装了adb.exe文件,可以在: 任务管理器 -->详细信息–>找一下后台运行的adb 安装过anroid模拟器,也存在adb,例如:雷电安装目录 D:\leidian\LDPlayer9 单独下载adb 官方下载地址:[官方网址] 下载目录文件: 测试adb USB连接手机 首先在设置界…

Distortion, Animation Raymarching

这节课的主要目的是对uv进行操作&#xff0c;实现一些动画的效果&#xff0c;实际就是采样的动画 struct texDistort {float2 texScale(float2 uv, float2 scale){float2 texScale (uv - 0.5) * scale 0.5;return texScale;}float2 texRotate(float2 uv, float angle){float…

SpringBoot整合POI实现Excel文件的导出与导入

使用 Apache POI 操作 Excel文件,系列文章: 《SpringBoot整合POI实现Excel文件的导出与导入》 《SpringMVC实现文件的上传与下载》 《C#使用NPOI导出Excel文件》 《NPOI使用手册》 1、Apache POI 的介绍 Apache POI 是一个基于 Java 的开源库,专为读写 Microsoft Office 格…

矩阵基础+矩阵转置+矩阵乘法+行列式与逆矩阵

GPU渲染过程 矩阵 什么是矩阵&#xff08;Matrix&#xff09; 向量 &#xff08;3&#xff0c;9&#xff0c;88&#xff09; 点乘&#xff1a;计算向量夹角 叉乘&#xff1a;计算两个向量构成平面的法向量。 矩阵 矩阵有3行&#xff0c;2列&#xff0c;所以表示为M32 获取固…

(EtherCAT 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

型号 协议转换通信网关 EtherCAT 转 EtherNet/IP MS-GW12 概述 MS-GW12 是 EtherCAT 和 EtherNet/IP 协议转换网关&#xff0c;为用户提供两种不同通讯协议的 PLC 进行数据交互的解决方案&#xff0c;可以轻松容易将 EtherNet/IP 网络接入 EtherCAT 网络中&#xff0c;方便…

分享:批量提取图片文字并自动命名文件,ocr识别图片指定区域并重命名文件名工具,基于WPF和腾讯OCR识别的接口的视线方案

一、项目背景 在处理大量图片时,常常需要从图片中提取特定区域的文字信息,并依据这些信息对图片进行重命名。例如,在档案管理领域,大量纸质文件被扫描成图片后,需要从图片中提取关键信息(如文件编号、日期等)来重命名图片,以便后续的检索和管理;在电商领域,商家可能…

Mysql读写分离(1)-服务器的设置(主从复制)

1.简介 随着网站访问和请求量的增加&#xff0c;单台数据库服务器的连接已耗尽&#xff0c;会出现连接请求还在等待&#xff0c;或是数据库服务器崩溃等现象&#xff0c;这时候我们考虑如何减少数据库的连接&#xff0c;可以通过优化代码、使用缓存、数据库读写分离等方式解决…

STM32F103ZET6移植FATFS文件系统教程(W25Q32)

一、FATFS核心特性 跨平台支持‌ 支持FAT12/FAT16/FAT32格式&#xff0c;兼容Windows文件系统‌&#xff1b; 采用标准C语言编写&#xff0c;代码量小且支持RTOS‌。 配置灵活性‌ 通过宏定义实现功能裁剪&#xff0c;例如&#xff1a; FF_FS_READONLY&#xff1a;设为1时禁…