第十四届蓝桥杯模拟赛第三期(Python)
写在前面
- 包含本次模拟赛的10道题题解
- 能过样例,应该可以AC
- 若有错误,欢迎评论区指出
- 本次题目除了最后两题有些难度,其余题目较为简单,我只将代码和结果给出,如果不能理解欢迎私信我,我会解答滴。
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 这个区间,维护一个最小值。这样的做法最坏情况下的时间复杂度是,对于这道题而言,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道题题解能过样例,应该可以AC若有错误,欢迎评论区指出本次题目除了最后两题有些难度,其余题目较为简单,我只将代码和结果给出,如果不能理解欢迎私信我,我会解答滴。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 是日也,天朗气清,惠风和畅。仰观宇宙之大,俯察论文论坛,所以游目骋怀,足以极视听之娱,信可乐也。 夫人之相与,俯仰一世,或取诸怀抱,悟言一室之内;或因寄所…...
全国计算机技术与软件专业技术资格(水平)考试 上半年2023年3月13日开始,下半年2023年8月14日开始
根据2023年计算机技术与软件专业技术资格(水平)考试工作计划,可以得知,2023年软考报名时间——上半年2023年3月13日开始,下半年2023年8月14日开始。 点击查看:人力资源社会保障部办公厅关于2023年度专业技术人员职业资格考试工作计划及有关事项的通知 点击查看:2023年度…...
大数据框架之Hadoop:MapReduce(六)Hadoop企业优化
一、MapReduce 跑的慢的原因 MapReduce程序效率的瓶颈在于两点: 1、计算机性能 CPU、内存、磁盘、网络 2、IO操作优化 数据倾斜Map和Reduce数设置不合理Map运行时间太长,导致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软件开发好学吗?学完好找工作吗?
互联网高速发展的当下,Java语言无处不在:手机APP、Java游戏、电脑应用,都有它的身影。作为最热门的开发语言之一,Java在编程圈的地位不可撼动。可是,听名字就很专业的样子。Java语言到底好学吗?刚入坑编程圈…...
【独家C】华为OD机试提供C语言题解 - 优秀学员统计
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明优秀…...
数据仓库、数据中台、数据湖都是什么?
相信很多人都在最近的招聘市场上看到过招聘要求里提到了数据仓库、数据中台,甚至还有数据湖,这些层出不穷的概念让人困扰。今天我就来跟大家讲一讲数据仓库、数据中台以及数据湖的概念及区别。 数据库 在了解数据仓库、数据中台以及数据湖之前ÿ…...
0099 MySQL02
1.简单查询 查询一个字段 select 字段名 from 表名; 查询多个字段,使用“,”隔开 select 字段名,字段名 from 表名; 查询所有字段 1.把每个字段都写上 select 字段名,字段名,字段名.. from 表名; 2.使用*(效率低,可读性差) select *…...
应急响应-ubuntu系统cpu飙高
这里写目录标题一、排查过程二、处置过程三、溯源总结一、排查过程 1、查看CPU使用情况 top -c2、查看异常进程的具体参数 ps -aux3、通过微步查询域名信息 4、查看异常进程的监听端口 netstat -anlpt5、查找服务器内的异常文件 ls cat run.sh cat mservice.sh6、查看脚本…...
MDK软件使用技巧
本文主要汇总MDK软件使用技巧 一、字体大小及颜色修改 第一步点击工具栏的这个小扳手图标 进去后显示如下,先设置 Encoding 为:Chinese GB2312(Simplified),然后设置 Tab size 为:4 以更好的支持简体中文,否则&…...
3 333333
全部 答对 答错 单选题 1. 一个项目来取代目前公司的文件存储系统已经获批。外部供应商提供硬件,内部团队开发软件。这个团队是自组织的,由一般的专家组成。团队建议迭代地与供应商合作,但供应商表示拒绝。因此,只有软件将被迭代…...
1528. 重新排列字符串
1528. 重新排列字符串https://leetcode.cn/problems/shuffle-string/ 难度简单52收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新…...
【8】【用户操作日志】操作日志SpringBootStarter
操作日志 此版本操作日志主要就是通过AOP拦截器实现的,整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口;组件提供了6个扩展点,自定义函数、日志上下文、用户信息获取,日志保存,自定义异常获取,入…...
【游戏逆向】寻路函数隐藏检测点分析
案例: 某游戏出现调用寻路函数失败异常崩溃。 基本情况分析: 在刚登陆游戏的时候直接调用寻路函数崩溃。 手动寻路以后再调用寻路不崩溃。(排除了函数编写错误的可能) 猜测可能检测方法: 有某一个标志位(全局类型)在游戏刚登陆的时候没…...
【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法
【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法 一、检查Zabbix监控平台状态1.检查Zabbix各组件容器状态2.奸诈Zabbix-server状态二、下载监控模板1.进入Zabbix官网下载页面2.查看下载模板三、创建一个测试容器1.创建一个测试容器2.检查测试容器状态3.访问测试web服务四、…...
这款 Python 工具进行数据分析及数据可视化真的很棒啊
前言 大家好,今天我们以全国各地区衣食住行消费数据为例,来分析2022年中国统计年鉴数据,统计全国各地人民的消费地图,看看: 哪个省份的人最能花钱 哪个省份的人最舍得花钱 哪个省份的人最抠门 全国各地区人民在吃、穿…...
visual Studio Code常用快捷键
1、向上/向下移动代码行 alt 下箭头/上箭头 2、向上/向下复制一行代码 shiftalt 下箭头/上箭头 3、选定多个相同的单词 ctrl d 4、全局替换 ctrl h 5、快速定位到某一行 ctrl g 6、放大缩小整个编辑器界面 ctrl / - 7、添加多个光标 Ctrl Alt 上箭头/下箭头…...
基础(一)十六进制转八进制
试题 基础练习 十六进制转八进制 资源限制 内存限制:512.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第…...
梯度提升算法决策过程的逐步可视化
梯度提升算法是最常用的集成机器学习技术之一,该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础,所以在这篇文章中,我们将从头开始构建一个梯度增强模型并将其可视化。 梯度提升算法介绍 梯度提升算法&#x…...
Linux系统调用之文件属性操作函数
前言 如果,想要深入的学习Linux系统调用中access,chmod,chown,truncate这些有关于文件属性的操作函数,还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令: man 2 access/chmod/chown/truncate 即可…...
VMware 安装 银河麒麟高级服务器操作系统 V10 + QT 开发环境搭建
下载并安装vmware 下载银河麒麟操作烯烃服务器版v10的镜像文件从官网下载,因为是x86的电脑芯片,选择AMD64版,即vmare 安装麒麟操作系统注意事项:安装位置选择自动分区网络和主机名设置打开网络,ip4就不用再设置了创建一…...
2023年疫情开放,国内程序员薪资涨了还是跌了?大数据告诉你答案
自从疫情开放,国内各个行业都开始有复苏的迹象,尤其是旅游行业更是空前暴涨,那么互联网行业如何? 有人说今年好找工作多了,有人说依然是内卷得一塌糊涂,那么今年开春以来,各个岗位的程序员工资…...
太赫兹频段耦合器设计相关经验总结
1拿到耦合器的频段后,确定中心频率和波导的宽度和高度 此处贴一张不同频段对应的波导尺寸图 需要注意的是1英寸 2.54厘米,需注意换算 具体网址:矩形波导尺寸 | 扩维 (qualwave.com) 仅列举我比较常用的太赫兹频段部分 2.以220~320GHz频段&a…...
反弹shell数据不回显带外查询pikaqiu靶场搭建
P1 文件上传下载(解决无图形化和解决数据传输) 解决无图形化: 当我们想下载一个文件时,通常是通过浏览器的一个链接直接访问网站点击下载的,但是在实际的安全测试中,我们获取的权限只是一个执行命令的窗口…...
按键修改阈值功能、报警功能、空气质量功能实现
按键修改阈值功能 要使用按键,首先要定义按键。通过查阅资料,可知按键的引脚如图所示:按键1(S1)通过KEY0与PA0连接,按键2(S2)通过KEY1与PE2连接,按键3(S3&…...
spring重点整理篇--springMVC(嘿嘿,开心哟)
Spring MVC是的基于JavaWeb的MVC框架,是Spring框架中的一个组成部分(WEB模块) MVC设计模式: Controller(控制器) Model(模型) View(视图) 重点来了😄 SpringMVC的工作机制…...
图像融合评估指标Python版
图像融合评估指标Python版 这篇博客利用Python把大部分图像融合指标基于图像融合评估指标复现了,从而方便大家更好的使用Python进行指标计算,以及一些I/O 操作。除了几个特征互信息的指标没有成功复现之外,其他指标均可以通过这篇博客提到的P…...
深圳南山做网站的公司/电商从零基础怎么学
原文http://www.wdaay.com/knowledge-62.htm 请不要忽视你的网站速度,因为他对你网站的SEO推广有很大的影响。今天我整理了8个很好的网站速度测试的免费工具,希望可以帮助到大家。他们可以把网站各个部分的加载速度展示给你,还为你给出优化建…...
南川网站建设/网站优化查询代码
本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法。分享给大家供大家参考,具体如下:android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化。这里我说一…...
wp网站怎么用插件做html网页/济南优化网站关键词
直接把下面代码复制到你要填写的url地址 <?php //定义常量token define(TOKEN,weixin); //检查标签function checkSignature(){//先获取到这三个参数$signature $_GET[signature]; $nonce $_GET[nonce]; $timestamp $_GET[timestamp]; //把这三个参数存到一个数组里面…...
网站建设建站网易互客/百度seo优化排名软件
mysql存储引擎概述存储引擎(MyISAM,InnoDB),表类型,是表级别的概念,不是数据库级别的概念。MyISAM:无事务,表锁.frm:表结构定义文件.MYD:表数据.MYI:索引InnoDB:事务&…...
安平网站建设培训/百度如何发布信息推广
1.小米导航栏示例 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>06小米商城导航条示例</title><style>/* 全局通用的样式,去除浏览器默认的内边距和外边距 */* {margin: …...
企业英文网站建设的重要性/百度账户推广登陆
电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “2…...