当前位置: 首页 > news >正文

第十四届蓝桥杯模拟赛第三期(Python)

写在前面

  1. 包含本次模拟赛的10道题题解
  2. 能过样例,应该可以AC
  3. 若有错误,欢迎评论区指出
  4. 本次题目除了最后两题有些难度,其余题目较为简单,我只将代码和结果给出,如果不能理解欢迎私信我,我会解答滴。

 

start = 2022 def check(num) : s = str(hex(num))[2:] for i in range(len(s)) : if ord(s[i]) < ord('a') or ord(s[i]) > ord('f') : return False return True while 1 : start += 1 if check(start) : break print(start)

 #没代码,直接草稿纸手推就行了


 

import datetime start = datetime.date(1900,1,1) 
end = datetime.date(9999,12,31) 
diff = datetime.timedelta(1) def check(num) : year, month, day = num.split('-')if sum(list(map(int,year))) == sum(list(map(int,month))) + sum(list(map(int,day))) : return True return False ans = 0 
while start <= end : if check(str(start)) : ans += 1 if start == end : break start += diff print(ans)

 


s = '99,22,51,63,72,61,20,88,40,21,63,30,11,18,99,12,93,16,7,53,64,9,28,84,34,96,52,82,51,77'lst = list(map(int,s.split(',')))ans = 0 for i in range(29) : for j in range(i + 1, 30) : if lst[i] * lst[j] >= 2022 : ans += 1 print(ans) 

 


s = '110010000011111110101001001001101010111011011011101001111110\
010000000001010001101100000010010110001111100010101100011110\
001011101000100011111111111010000010010101010111001000010100\
101100001101011101101011011001000110111111010000000110110000\
010101100100010000111000100111100110001110111101010011001011\
010011011010011110111101111001001001010111110001101000100011\
101001011000110100001101011000000110110110100100110111101011\
101111000000101000111001100010110000100110001001000101011001\
001110111010001011110000001111100001010101001110011010101110\
001010101000110001011111001010111111100110000011011111101010\
011111100011001110100101001011110011000101011000100111001011\
011010001101011110011011111010111110010100101000110111010110\
001110000111100100101110001011101010001100010111110111011011\
111100001000001100010110101100111001001111100100110000001101\
001110010000000111011110000011000010101000111000000110101101\
100100011101011111001101001010011111110010111101000010000111\
110010100110101100001101111101010011000110101100000110001010\
110101101100001110000100010001001010100010110100100001000011\
100100000100001101010101001101000101101000000101111110001010\
101101011010101000111110110000110100000010011111111100110010\
101111000100000100011000010001011111001010010001010110001010\
001010001110101010000100010011101001010101101101010111100101\
001111110000101100010111111100000100101010000001011101100001\
101011110010000010010110000100001010011111100011011000110010\
011110010100011101100101111101000001011100001011010001110011\
000101000101000010010010110111000010101111001101100110011100\
100011100110011111000110011001111100001110110111001001000111\
111011000110001000110111011001011110010010010110101000011111\
011110011110110110011011001011010000100100101010110000010011\
010011110011100101010101111010001001001111101111101110011101'def check(x, y) : res = 0 queue = [(x, y)] while queue : nx, ny = queue.pop(0) res += 1 st[nx][ny] = False for i, j in [(1,0), (-1,0), (0,1), (0,-1)] : px = nx + i ; py = ny + j if 0 <= px < 30 and 0 <= py < 60 and Map[px][py] == '1' and st[px][py] : queue.append((px,py)) return res Map = [[0] * 60 for i in range(30)]for i in range(30) :for j in range(60) :Map[i][j] = s[i*30+j]st = [[True] * 60 for i in range(30)] ans = 0 
for i in range(30) : for j in range(60) : if Map[i][j] == '1' and st[i][j] : ans = max(ans, check(i, j)) print(ans)

 


x = int(input())
n = int(input()) x = x + (n % 7)print(x if x <= 7 else x - 7)

 

 

from math import sqrt, piW,H,n,r = map(int,input().split()) def get_dist(x1, y1, x2, y2) : dx = x1 - x2 dy = y1 - y2 return sqrt(dx * dx + dy * dy) def check(x, y) : for i, j in loc : if get_dist(x, y, i, j) <= r : return True return False loc = [] 
for i in range(n) : x,y = map(int,input().split()) loc.append((x,y))ans = 0 
for i in range(W + 1) : for j in range(H + 1) : if check(i, j) : ans += 1 print(ans)

 

 

 


N,M = map(int,input().split()) 
T = int(input())Map = [[True] * (M + 1) for i in range(N + 1)] 
for _ in range(T) : r1,c1,r2,c2 = map(int,input().split()) for i in range(r1, r2 + 1) : for j in range(c1, c2 + 1) : Map[i][j] = False ans = 0 
for i in range(1, N + 1) : ans += Map[i][1:].count(True)print(ans)

 

这道题是经典的滑雪道记忆化搜索的题目,我写过一篇很详细的题解,请自行参考。

蓝桥杯/洛谷 : 最长滑雪道/滑雪 + 扩展题目(记忆化搜索 Python)_蓝桥杯滑雪_正在黑化的KS的博客-CSDN博客


N,M = map(int,input().split()) 
Map = [] for i in range(N) : Map.append(list(map(int,input().split()))) dist = [[-1] * M for i in range(N)] def find(x, y) : if dist[x][y] != -1 : return dist[x][y]dist[x][y] = 0 for i,j in [(1,0),(0,1),(-1,0),(0,-1)] : px = x + i ; py = y + j if 0 <= px < N and 0 <= py < M and Map[px][py] < Map[x][y] :  dist[x][y] = max(dist[x][y], find(px, py)) dist[x][y] += 1 return dist[x][y] ans = 0 
for i in range(N) : for j in range(M) : ans = max(ans, find(i, j)) print(ans) 

 

重点题目来了!(敲黑板 

有几位小伙伴私信问我这道题目该怎么解,我先说明我是用线段树解决的,但我认为应该还有别的解法,只是我目前还没有想到,如果有与我解法不同的方法可以放在评论区,大家一起讨论哈。

题目大意就是说,对于每一个点i而言,它的前 k 个点到后 k 个点这段 2k + 1 的区间中,最小数是多少。(区间边界是 0 ~ n - 1)

首先先说下超时做法,我们很容易想到,可以依次枚举每个点i,对每个点i再枚举它的

2k + 1 这个区间,维护一个最小值。这样的做法最坏情况下的时间复杂度是O(n^{2}),对于这道题而言,n最大有10^6,因此肯定会超时。

正解如下,其实本质上这道题目是一道线段树的简化版,因为只涉及区间查询,不涉及区间修改,所以建树之后每次按要求查询区间就可以了。线段树的理论有些复杂,这里就不再给大家详细讲了,网上有很多篇关于线段树优秀的讲解。大家可以自行翻阅,如果已经理解了线段树还是不能看懂我的代码的话,可以来私信我。

Python3代码: 


N = 10 ** 6 + 10 
INF = float('inf')n = int(input()) 
w = list(map(int,input().split())) class Node : def __init__(self, l, r, v) : self.l = l  self.r = r  self.v = v tr = [None] * (4 * N) def pushup(u) : tr[u].v = min(tr[u << 1].v, tr[u << 1 | 1].v) def build(u, l, r) :if l == r : tr[u] = Node(l, r, w[r]) else : tr[u] = {l, r, INF}  mid = l + r >> 1 build(u << 1, l, mid) ; build(u << 1 | 1, mid + 1, r) pushup(u) def query(u, l, r) :if l <= tr[u].l and r >= tr[u].r : return tr[u].v mid = tr[u].l + tr[u].r >> 1 res = INF if l <= mid : res = min(res, query(u << 1, l, r))if r > mid : res = min(res, query(u << 1 | 1, l, r)) return res build(1, 0, n - 1) k = int(input()) 
for i in range(n) : print(query(1, max(0, i - k), min(n - 1, i + k)), end = ' ') 

Tip: 考虑到很多小伙伴是C++组选手,我这里也贴一份C++的代码,以供参考。

Python写线段树真的有点反人类..

C++代码:

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std ;typedef long long LL ; const int N = 1e6 + 10 ; 
int n, k ; 
int w[N] ; struct Node 
{int l, r, mn ; 
}tr[4 * N] ; void pushup(int u) 
{tr[u].mn = min(tr[u << 1].mn, tr[u << 1 | 1].mn) ; 
}void build(int u, int l, int r) 
{if (l == r) tr[u] = {l, r, w[r]} ; else {tr[u] = {l, r} ; int mid = l + r >> 1 ; build(u << 1, l, mid), build(u << 1 | 1, mid + 1, r) ; pushup(u) ; } 
}int query(int u, int l, int r) 
{if (l <= tr[u].l && r >= tr[u].r) return tr[u].mn ; int mid = tr[u].l + tr[u].r >> 1 ;int res = 0x3f3f3f3f ;  if (l <= mid) res = min(res, query(u << 1, l, r)) ; if (r > mid) res = min(res, query(u << 1 | 1, l, r)) ; return res ;
}int main() 
{ios::sync_with_stdio(false) ; cin >> n ; for (int i = 0 ; i < n ; i ++ ) cin >> w[i] ;     build(1, 0, n - 1) ; cin >> k ; for (int i = 0 ; i < n ; i ++ ) cout << query(1, max(0, i - k), min(n - 1, i + k)) << " " ; return 0 ; 
}

写在最后 

还有一个月左右省赛就要开始了,预祝大家能有个圆满且理想的成绩。

如果我的文章对你有一些帮助,可以留下你的👍

谢谢你的阅读。

相关文章:

第十四届蓝桥杯模拟赛第三期(Python)

写在前面 包含本次模拟赛的10道题题解能过样例&#xff0c;应该可以AC若有错误&#xff0c;欢迎评论区指出本次题目除了最后两题有些难度&#xff0c;其余题目较为简单&#xff0c;我只将代码和结果给出&#xff0c;如果不能理解欢迎私信我&#xff0c;我会解答滴。start 2022…...

css-盒模型

巧妙运用margin负值盒模型和怪异盒模型(border padding 包含在内)display: block 能让textarea input 水平尺寸自适应父容器? – 不能 * {box-sizing: border-box; // bs: bb }<textarea/> 是替换元素,尺寸由内部元素决定,不受display水平影响. 当然可以直接设置宽度10…...

Linux | 调试器GDB的详细教程【纯命令行调试】

文章目录一、前言二、调试版本与发布版本1、见见gdb2、程序员与测试人员3、为什么Release不能调试但DeBug可以调试❓三、使用gdb调试代码1、指令集汇总2、命令演示⌨ 行号显示⌨ 断点设置⌨ 查看断点信息⌨ 删除断点⌨ 开启 / 禁用断点⌨ 运行 / 调试⌨ 逐过程和逐语句⌨ 打印 …...

wifi芯片大市场和个人小生活

3.3 是日也&#xff0c;天朗气清&#xff0c;惠风和畅。仰观宇宙之大&#xff0c;俯察论文论坛&#xff0c;所以游目骋怀&#xff0c;足以极视听之娱&#xff0c;信可乐也。 夫人之相与&#xff0c;俯仰一世&#xff0c;或取诸怀抱&#xff0c;悟言一室之内&#xff1b;或因寄所…...

全国计算机技术与软件专业技术资格(水平)考试 上半年2023年3月13日开始,下半年2023年8月14日开始

根据2023年计算机技术与软件专业技术资格(水平)考试工作计划,可以得知,2023年软考报名时间——上半年2023年3月13日开始,下半年2023年8月14日开始。 点击查看:人力资源社会保障部办公厅关于2023年度专业技术人员职业资格考试工作计划及有关事项的通知 点击查看:2023年度…...

大数据框架之Hadoop:MapReduce(六)Hadoop企业优化

一、MapReduce 跑的慢的原因 MapReduce程序效率的瓶颈在于两点&#xff1a; 1、计算机性能 CPU、内存、磁盘、网络 2、IO操作优化 数据倾斜Map和Reduce数设置不合理Map运行时间太长&#xff0c;导致Reduce等待过久小文件过多大量的不可分块的超大文件Spill次数过多Merge次…...

Spring File Storage的详细文档

快速入门配置pom.xml引入依赖<dependencies><!-- spring-file-storage 必须要引入 --><dependency><groupId>cn.xuyanwu</groupId><artifactId>spring-file-storage</artifactId><version>0.7.0</version></dependen…...

Java软件开发好学吗?学完好找工作吗?

互联网高速发展的当下&#xff0c;Java语言无处不在&#xff1a;手机APP、Java游戏、电脑应用&#xff0c;都有它的身影。作为最热门的开发语言之一&#xff0c;Java在编程圈的地位不可撼动。可是&#xff0c;听名字就很专业的样子。Java语言到底好学吗&#xff1f;刚入坑编程圈…...

【独家C】华为OD机试提供C语言题解 - 优秀学员统计

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明优秀…...

数据仓库、数据中台、数据湖都是什么?

相信很多人都在最近的招聘市场上看到过招聘要求里提到了数据仓库、数据中台&#xff0c;甚至还有数据湖&#xff0c;这些层出不穷的概念让人困扰。今天我就来跟大家讲一讲数据仓库、数据中台以及数据湖的概念及区别。 数据库 在了解数据仓库、数据中台以及数据湖之前&#xff…...

0099 MySQL02

1.简单查询 查询一个字段 select 字段名 from 表名; 查询多个字段&#xff0c;使用“&#xff0c;”隔开 select 字段名,字段名 from 表名; 查询所有字段 1.把每个字段都写上 select 字段名,字段名,字段名.. from 表名; 2.使用*(效率低&#xff0c;可读性差) select *…...

应急响应-ubuntu系统cpu飙高

这里写目录标题一、排查过程二、处置过程三、溯源总结一、排查过程 1、查看CPU使用情况 top -c2、查看异常进程的具体参数 ps -aux3、通过微步查询域名信息 4、查看异常进程的监听端口 netstat -anlpt5、查找服务器内的异常文件 ls cat run.sh cat mservice.sh6、查看脚本…...

MDK软件使用技巧

本文主要汇总MDK软件使用技巧 一、字体大小及颜色修改 第一步点击工具栏的这个小扳手图标 进去后显示如下&#xff0c;先设置 Encoding 为&#xff1a;Chinese GB2312(Simplified)&#xff0c;然后设置 Tab size 为&#xff1a;4 以更好的支持简体中文&#xff0c;否则&…...

3 333333

全部 答对 答错 单选题 1. 一个项目来取代目前公司的文件存储系统已经获批。外部供应商提供硬件&#xff0c;内部团队开发软件。这个团队是自组织的&#xff0c;由一般的专家组成。团队建议迭代地与供应商合作&#xff0c;但供应商表示拒绝。因此&#xff0c;只有软件将被迭代…...

1528. 重新排列字符串

1528. 重新排列字符串https://leetcode.cn/problems/shuffle-string/ 难度简单52收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s &#xff0c;其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新…...

【8】【用户操作日志】操作日志SpringBootStarter

操作日志 此版本操作日志主要就是通过AOP拦截器实现的&#xff0c;整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口&#xff1b;组件提供了6个扩展点&#xff0c;自定义函数、日志上下文、用户信息获取&#xff0c;日志保存&#xff0c;自定义异常获取&#xff0c;入…...

【游戏逆向】寻路函数隐藏检测点分析

案例&#xff1a; 某游戏出现调用寻路函数失败异常崩溃。 基本情况分析&#xff1a; 在刚登陆游戏的时候直接调用寻路函数崩溃。 手动寻路以后再调用寻路不崩溃。(排除了函数编写错误的可能) 猜测可能检测方法&#xff1a; 有某一个标志位(全局类型)在游戏刚登陆的时候没…...

【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法

【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法 一、检查Zabbix监控平台状态1.检查Zabbix各组件容器状态2.奸诈Zabbix-server状态二、下载监控模板1.进入Zabbix官网下载页面2.查看下载模板三、创建一个测试容器1.创建一个测试容器2.检查测试容器状态3.访问测试web服务四、…...

这款 Python 工具进行数据分析及数据可视化真的很棒啊

前言 大家好&#xff0c;今天我们以全国各地区衣食住行消费数据为例&#xff0c;来分析2022年中国统计年鉴数据&#xff0c;统计全国各地人民的消费地图&#xff0c;看看&#xff1a; 哪个省份的人最能花钱 哪个省份的人最舍得花钱 哪个省份的人最抠门 全国各地区人民在吃、穿…...

visual Studio Code常用快捷键

1、向上/向下移动代码行 alt 下箭头/上箭头 2、向上/向下复制一行代码 shiftalt 下箭头/上箭头 3、选定多个相同的单词 ctrl d 4、全局替换 ctrl h 5、快速定位到某一行 ctrl g 6、放大缩小整个编辑器界面 ctrl / - 7、添加多个光标 Ctrl Alt 上箭头/下箭头…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...