第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 部分题解
题面链接Htlang/2025lqb_python_b
个人觉得今年这套题整体比往年要简单许多,但是G题想简单了出大问题,预估5+0+10+10+15+12+0+8=60,道阻且长,再接再厉
A: 攻击次数
答案:103?181?题目没说明白每回合是不是只能使用一个英雄?
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve():xl = 2025cnt = 0for i in range(1, 2025):cnt += 1xl -= 5if i % 2 == 1:xl -= 15else:xl -= 2if i % 3 == 1:xl -= 2elif i % 3 == 2:xl -= 10elif i % 3 == 0:xl -= 7if xl <= 0:breakprint(i, xl)print(cnt)T = 1
for i in range(T):solve()
B: 最长字符串
答案:afplcu(洛谷的答案)
# # 考场错误解
# def I():
# return input()# def II():
# return int(input())# def MII():
# return map(int, I().split())# def LMII():
# return list(MII())# def solve():
# with open(r'words.txt', 'r') as file:
# data = file.readlines()# dic = {}
# for i in range(len(data)):
# x = data[i].strip()
# data[i] = list(x)
# dic[x] = 0
# data[i].sort()
# dic[x] = data[i]# can = set()
# for i in range(100):
# for x in data:
# if len(x) == i + 1:
# if len(x) == 1:
# can.add(tuple(x))
# else:
# if tuple(x[:len(x) - 1]) in can:
# can.add(tuple(x))
# cnt = 0
# for x in can:
# if len(x) > cnt:
# cnt = len(x)
# res = []
# for x in can:
# if len(x) == cnt:
# res.append(x)
# # print(dic)
# print(res)
# for x in dic:
# # print(tuple(dic[x]))
# if tuple(dic[x]) == res[0]:
# print(x)# T = 1
# for i in range(T):
# solve()# 正解
def is_beautiful_words(words):"""计算所有优美单词,并返回一个字典:key: 单词长度value: 集合,每个元素为 (word, sorted(word)) 表示已经确认的优美单词"""# 按长度升序排序(长度相同时字典序排序)words_sorted = sorted(words, key=lambda w: (len(w), w))# 用于存储每个长度的优美单词beautiful_by_length = {}for word in words_sorted:l = len(word)if l == 1:# 长度为1的单词自动是优美字符串(只要在单词本中)beautiful_by_length.setdefault(1, set()).add( (word, word) ) # 此处 sorted(word) == wordelse:# 先看是否存在长度为 l-1 的优美单词if (l - 1) not in beautiful_by_length:continue# 取当前单词的前 l-1 个字符,并计算其排序结果prefix = word[:-1]sorted_prefix = ''.join(sorted(prefix))# 检查是否存在一个长度为 l-1 的优美单词,其排序后的字符与 prefix 一致found = Falsefor bw, bw_sorted in beautiful_by_length[l - 1]:if bw_sorted == sorted_prefix:found = Truebreakif found:beautiful_by_length.setdefault(l, set()).add( (word, ''.join(sorted(word))) )return beautiful_by_lengthdef find_longest_beautiful_word(filename):with open(filename, "r", encoding="utf-8") as f:# 每一行一个单词,去除空白符words = [line.strip() for line in f if line.strip()]beautiful_by_length = is_beautiful_words(words)if not beautiful_by_length:return ""# 找到存在的最大长度max_len = max(beautiful_by_length.keys())# 在最大长度中,找出字典序最小的那个单词candidates = [word for word, _ in beautiful_by_length[max_len]]result = min(candidates) if candidates else ""return resultif __name__ == "__main__":# 假设文件名为 words.txtresult = find_longest_beautiful_word("words.txt")print("最长的优美字符串为:", result)
C: LQ 图形
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve():w, h, v = MII()for i in range(h):print("Q" * w)for i in range(w):print("Q" * (w + v))T = 1
for i in range(T):solve()
D: 最多次数
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve():s = I()check = {'lqb', 'lbq', 'qlb', 'qbl', 'blq', 'bql'}res = 0i = 0# print(len(s))while i < len(s) - 2:# print(i, s[i:i + 3])if s[i:i + 3] in check:res += 1i += 2i += 1print(res)T = 1
for i in range(T):solve()
E: A · B Problem
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve():L = II()res = 0lst = [0] * (L + 5)for i in range(1, L + 1):for j in range(1, L + 1):if i * j >= L:breaklst[i * j] += 1pre = lst.copy()for i in range(1, L):pre[i] += pre[i - 1]for i in range(1, L):cnt1 = icnt2 = L - ires += lst[cnt1] * pre[cnt2]print(res)T = 1
for i in range(T):solve()
赛时对拍
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve1(n):res = 0for i in range(1, n + 1):for j in range(1, n + 1):for k in range(1, n + 1):for l in range(1, n + 1):if i * k + j * l <= n:res += 1# print((i, k), (j, l))print(res)def solve2(L):res = 0lst = [0] * (L + 5)for i in range(1, L + 1):for j in range(1, L + 1):if i * j >= L:breaklst[i * j] += 1pre = lst.copy()for i in range(1, L):pre[i] += pre[i - 1]for i in range(1, L):cnt1 = icnt2 = L - ires += lst[cnt1] * pre[cnt2]print(res)T = 1
for i in range(T):L = II()solve1(L)solve2(L)
F: 园艺
赛时代码,可能超时
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve():n = II()data = LMII()res = 1cnt = 1for i in range(1, n):if data[i] > data[i - 1]:cnt += 1else:res = max(res, cnt)cnt = 1res = max(res, cnt)if res == 1 or res == n:print(res)returnfor jg in range(2, n): # 间隔if res > (n - 1) // jg + 1:breakfor st in range(n - jg):cnt = 1for idx in range(st + jg, n, jg):if data[idx] > data[idx - jg]:cnt += 1else:res = max(res, cnt)cnt = 1res = max(res, cnt)print(res)T = 1
for i in range(T):solve()
赛后优化及对拍
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve1(n, data):res = 1cnt = 1for i in range(1, n):if data[i] > data[i - 1]:cnt += 1else:res = max(res, cnt)cnt = 1res = max(res, cnt)if res == 1 or res == n:print(res)returnfor jg in range(2, n): # 间隔if res > (n - 1) // jg + 1:breakfor st in range(n - jg):cnt = 1for idx in range(st + jg, n, jg):if data[idx] > data[idx - jg]:cnt += 1else:res = max(res, cnt)cnt = 1res = max(res, cnt)print(res)def solve2(n, data):dp = [[1 for _ in range(n + 1)] for _ in range(n + 1)]for i in range(0, n):for j in range(0, i):if data[i] > data[j]:dp[i][i - j] = dp[j][i - j] + 1print(max([max(d) for d in dp]))T = 1
for i in range(T):n = II()# data = LMII()import randomdata = [random.randint(1, 2 ** 20) for _ in range(n)]import timet1 = time.time()solve1(n, data)t2 = time.time()solve2(n, data)t3 = time.time()print(t2 - t1, t3 - t2)
G: 书架还原
# # 考场错误解
# def I():
# return input()# def II():
# return int(input())# def MII():
# return map(int, I().split())# def LMII():
# return list(MII())# def solve():
# n = II()
# data = [0] + LMII()
# res = 0
# for i in range(1, n + 1):
# if i != data[i]:
# if i == data[data[i]]:
# res += 1
# x = data[data[i]]
# data[data[i]] = data[i]
# data[i] = x
# print(res, data)
# cnt = 0
# for i in range(1, n + 1):
# if i != data[i]:
# cnt += 1
# if cnt:
# print(res + cnt - 1)
# else:
# print(res)# T = 1
# for i in range(T):
# solve()# 正解
n = int(input())
a = list(map(int, input().split()))
visited = [False] * n
ans = 0for i in range(n):if not visited[i] and a[i] != i + 1:count = 0j = iwhile not visited[j]:visited[j] = Truecount += 1j = a[j] - 1ans += count - 1print(ans)
H: 异或和
赛时代码,超时
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve1():n = II()data = LMII()res = 0for i in range(n - 1):for j in range(i + 1, n):res += (data[i] ^ data[j]) * (j - i)print(res)T = 1
for i in range(T):solve1()
赛时对拍,超时
def I():return input()def II():return int(input())def MII():return map(int, I().split())def LMII():return list(MII())def solve1(n, data):res = 0for i in range(n - 1):for j in range(i + 1, n):# print(data[i],data[j],data[i] ^ data[j])res += (data[i] ^ data[j]) * (j - i)print(res)def solve2(n, data):res = 0for j_i in range(1, n):cnt = 0for i in range(j_i):for j in range(i + j_i, n, j_i):cnt += data[j - j_i] ^ data[j]res += j_i * cntprint(res)T = 1
for i in range(T):n = II()# data = LMII()import randomdata = [random.randint(1, 2 ** 20) for _ in range(n)]import timet1 = time.time()solve1(n, data)t2 = time.time()solve2(n, data)t3 = time.time()print(t2 - t1, t3 - t2)
相关文章:
第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 部分题解
题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多,但是G题想简单了出大问题,预估50101015120860,道阻且长,再接再厉 A: 攻击次数 答案:103?181?题目没说明白每回合是…...
HTTP:三.HTTP连接
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议。它是互联网上最常用的协议,用于在客户端和服务器之间传输数据。HTTP协议通常用于从Web服务器传输网页和文件到客户端浏览器,并支持其他用途,如传输API数据和传输文件。 HTTP连接是指客户端向服务…...
Oracle 复制表结构(含索引、主键)操作指南
Oracle 复制表结构(含索引、主键)操作指南 1. 复制基础表结构 -- 创建空表结构(不复制数据) CREATE TABLE new_table AS SELECT * FROM old_table WHERE 10;2. 复制主键约束 -- 查询原表主键信息 SELECT constraint_name, co…...
”插入排序“”选择排序“
文章目录 插入排序1. 直接插入排序(O(n^2))举例1:举例2:直插排序的"代码"直插排序的“时间复杂度” 2. 希尔排序(O(n^1.3))方法一方法二(时间复杂度更优) 选择排序堆排序直接选择排序 我们学过冒泡排序,堆排序等等。(回…...
烟花爆竹储存作业安全要求
烟花爆竹储存作业证是从事相关作业的法定凭证,旨在确保操作人员具备专业知识和安全技能,防止因违规操作引发火灾、爆炸等事故。根据《烟花爆竹安全管理条例》及相关法规,未取得作业证的人员不得从事烟花爆竹储存、搬运、管理等作业。 仓库选址…...
Python深度学习基础——卷积神经网络(CNN)(PyTorch)
CNN原理 从DNN到CNN 卷积层与汇聚 深度神经网络DNN中,相邻层的所有神经元之间都有连接,这叫全连接;卷积神经网络 CNN 中,新增了卷积层(Convolution)与汇聚(Pooling)。DNN 的全连接…...
Python(11)Python判断语句全面解析:从基础到高级模式匹配
目录 一、条件逻辑的工程价值1.1 真实项目中的逻辑判断1.2 判断语句类型矩阵 二、基础判断深度解析2.1 多条件联合判断2.2 类型安全判断 三、模式匹配进阶应用3.1 结构化数据匹配3.2 对象模式匹配 四、判断语句优化策略4.1 逻辑表达式优化4.2 性能对比测试 五、典型应用场景实战…...
MTK7628基于原厂的mtk-openwrt-sdk-20160324-8f8e4f1e.tar.bz2 源代码包,配置成单网口模式的方法
一、配置. 在SDK工程下,运行make kernel_menuconfig,如下图所示: Ralink Module --->选上“One Port Only”,如下图所示: 如果P0网口实现WAN口,就配置成W/LLLL,否则就配置成LLLL/W. 二、修改网口的原代…...
艾伦·图灵:计算机科学与人工智能之父
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 艾伦图灵:计算机科学与人工智能之父 一、天才的诞生与早期生涯 1912年6月…...
策略模式实现 Bean 注入时怎么知道具体注入的是哪个 Bean?
Autowire Resource 的区别 1.来源不同:其中 Autowire 是 Spring2.5 定义的注解,而 Resource 是 Java 定义的注解 2.依赖查找的顺序不同: 依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当…...
React九案例中
代码下载 地图找房模块 顶部导航栏 封装NavHeader组件实现城市选择,地图找房页面的复用,在 components 目录中创建组件 NavHeader,把之前城市列表写过的样式复制到 NavHeader.scss 下,在该组件中封装 antd-mobile 组件库中的 N…...
第一期:[特殊字符] 深入理解MyBatis[特殊字符]从JDBC到MyBatis——持久层开发的转折点[特殊字符]
前言 🌟 在软件开发的过程中,持久层(或数据访问层)是与数据库进行交互的关键部分。早期,开发者通常使用 JDBC(Java Database Connectivity)来实现与数据库的连接与操作。虽然 JDBC 在一定程度上…...
Adobe Photoshop 2025 Mac中文 Ps图像编辑
Adobe Photoshop 2025 Mac中文 Ps图像编辑 一、介绍 Adobe Photoshop 2025 Mac版集成了多种强大的图像编辑、处理和创作功能。①强化了Adobe Sensei AI的应用,通过智能抠图、自动修复、图像生成等功能,用户能够快速而精确地编辑图像。②3D编辑和动画功…...
用纯Qt实现GB28181协议/实时视频/云台控制/预置位/录像回放和下载/事件订阅/语音对讲
一、前言 在技术的长河中探索,有些目标一旦确立,便如同璀璨星辰,指引着我们不断前行。早在2014年,我心中就种下了用纯Qt实现GB28181协议的种子,如今回首,一晃十年已逝,好在整体框架和逻辑终于打…...
让你方便快捷实现主题色切换(useCssVar)
文章目录 前言一、useCssVar是什么?二、使用步骤1.安装依赖2.实现主题色切换 总结 前言 使用 CSS 变量(CSS Custom Properties)实现主题色切换是一种高效且易于维护的方法。通过将主题颜色定义为 CSS 变量,你可以轻松地在不同主题…...
面试之《websocket》
配置环境 mkdir express cd express npm init npm install express ws// index.js var app require("express")(); var WebSocket require("ws");var wss new WebSocket.Server({ port: 8888 });wss.on(connection, function connection(ws) {ws.on(m…...
Linux 内存调优之系统内存全面监控
写在前面 博文内容涉及 Linux 全局内存监控监控方式包括传统工具 vmstat/top/free/sar/slabtop ,以及 systemd-cgtop,proc 内存伪文件系统监控内容包括进程内存使用情况, 内存全局数据统计,内存事件指标,以及进程内存段数据监控理解不足小伙伴帮忙指正 😃,生活加油我看远…...
每天学一个 Linux 命令(14):cat
Linux 文件查看与合并命令:cat cat(全称 concatenate)是 Linux 中用于查看文件内容、合并文件或创建简单文件的基础命令。它操作简单但功能灵活,是日常文件处理的常用工具。 1. 命令作用 查看文件内容:直接输出文件内容到终端。合并文件:将多个文件内容合并输出或保存到…...
L36.【LeetCode题解】查找总价格为目标值的两个商品(剑指offer:和为s的两个数字) (双指针思想,内含详细的优化过程)
目录 1.LeetCode题目 2.分析 方法1:暴力枚举(未优化的双指针) 方法2:双指针优化:利用有序数组的单调性 版本1代码 提问:版本1代码有可以优化的空间吗? 版本2代码 提问:版本2代码有可以优化的空间吗? 版本3代码(★推荐★) 3.牛客网题目:和为s的数字 1.LeetCode题目 …...
英语学习4.9
cordial 形容词: 热情友好的,诚恳的 表示一个人态度温和、亲切,给人温暖和善的感觉。 令人愉快的,和睦的 形容关系融洽、氛围和谐。 例句: The two leaders had a cordial but formal discussion. &am…...
HBuilderX 开发的uniapp项目在微信开发者工具中调试运行
HBuilderX 开发的uniapp项目在微信开发者工具中调试运行 或者运行失败 https://blog.csdn.net/m0_74141658/article/details/129541365?fromshareblogdetail&sharetypeblogdetail&sharerId129541365&sharereferPC&sharesourceweixin_48616345&sharefromf…...
【特权FPGA】之乘法器
完整代码如下: timescale 1ns / 1ps// Company: // Engineer: // // Create Date: 23:08:36 04/21/08 // Design Name: // Module Name: mux_16bit // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: …...
MyBatis-Plus 核心功能
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、条件构造器1、核心 Wrapper 类型基础查询示例SQL 查询使用 QueryWrapper 实现查询 更新操作示例场景一:基础更新SQL 查询使用 QueryWrapper 实现更新…...
前端工程化-包管理NPM-package.json 和 package-lock.json 详解
package.json 和 package-lock.json 详解 1.package.json 基本概念 package.json 是 Node.js 项目的核心配置文件,它定义了项目的基本信息、依赖项、脚本命令等。 主要字段 基本信息字段 name: 项目名称(必填) version: 项目版本…...
Day22 -php开发01--留言板+知识点(超全局变量 文件包含 数据库操作 第三方插件)
环境要求:php7.0.9 小皮 navicat phpstorm24.1 知识点:会写(留言板 留言板后台) 超全局变量 三方插件的使用 文件包含 1、开启小皮并利用navicat新建一个数据库 注意:本地的服务mysql关闭后 才可打开小皮。属…...
Java工具类-assert断言
我们可能经常在项目的单元测试或者一些源码中看到别人在使用assert关键字,当然也不只是Java语言,很多编程语言也都能看到,我们大概知道断言可以用于测试中条件的校验,但却不经常使用,本文总结了Java中该工具类的使用。…...
A2A协议分析报告
A2A协议分析报告 一、引言 在人工智能快速发展的背景下,智能体(Agent)技术逐步成为企业数字化转型的关键支撑。为了打破不同智能体之间协作壁垒,提升多模态协同效率,Google 于2025年推出了“Agent-to-Agentÿ…...
人工智能、机器学习与深度学习-AI基础Day2
核心概念与技术全景解析 近年来,人工智能(AI)技术飞速发展,逐渐渗透到生活的方方面面。然而,对于许多人来说,AI、机器学习(ML)、深度学习(DL)以及生成式人工…...
GGML源码逐行调试(上)
目录 前言1. 简述2. 环境配置3. ggml核心概念3.1 gguf3.2 ggml_tensor3.3 ggml_backend_buffer3.4 ggml_context3.5 backend3.6 ggml_cgraph3.7 ggml_gallocr 4. 推理流程整体梳理4.1 时间初始化与参数设置4.2 模型加载与词汇表构建4.3 计算图与内存分配4.4 文本预处理与推理过…...
SpringCloud-OpenFeign
前言 1.存在问题 远程调用可以像Autowired一样吗 服务之间的通信⽅式,通常有两种:RPC和HTTP. 在SpringCloud中,默认是使⽤HTTP来进⾏微服务的通信,最常⽤的实现形式有两种: RestTemplate OpenFeign RPC(RemoteProcedureCall)远程过程调⽤&…...
