蓝桥杯真题(Python)每日练Day1

说明:在CSP认证的基础上(可以看看本人CSP打卡系列的博客)备赛2024蓝桥杯(Python),本人专业:大数据与数据科学 因此对python要求熟练掌握,通过练习蓝桥杯既能熟悉语法又能锻炼算法和思维逻辑,在此专栏中将记录本人每天的练习内容和解题思路。本人使用lanqiaoOJ练习,地址:www.lanqiao.cn/problems登录后即可根据题号查找到题目。题目部分将截图展示,题目分析讲述大致分析思路,题解中的代码注释详细解释步骤。如有不理解的部分或者值得改进的地方请在评论区留言。

学习计划:两道杂题,至少三道专项题。练习代码量不少于300行。

题目1

请添加图片描述

题目分析

1.显然 考察数组的知识,再看存储格式,直接用二维列表表示矩阵。
2.显然 运动轨迹是下右上左,限定运动次数即是矩阵中正整数的个数,判断轨迹方法:不可超过边界,遍历过的点不再遍历第二遍因此需要做标记。
3. 确定拐弯方向:由于只有四种方式且是循环执行所以,计数器从0开始计数,每过一步就加1对4取余即可判断拐弯方向。
4. 输出当前正整数,标准化输出后将走过的点标记即可。

题解

l=[]
m,n=map(int,input().split())
for i in range(m):l.append(input().split())dir=[[1,0],[0,1],[-1,0],[0,-1]]#下右上左
sum=m*n
x,y=-1,0
d=0#指针用来确定移动方向
while sum>0:sum=sum-1nx,ny=x+dir[d][0],y+dir[d][1]#确定下一个走的位置:xy是当前位置nx,ny是下一步的位置if nx<0 or nx>=m or ny<0 or ny>=n or l[nx][ny]==-1:#需要换方向的情况,走过的标记为-1,输入的都是正正数所以不打架d=(d+1)%4 #确定拐弯方向x,y=x+dir[d][0],y+dir[d][1]#移动到下一个else:#不需要换方向的时候x,y=nx,nyprint(l[x][y],end=" ")#按标准空格分割l[x][y]=-1#将走过的标记

题目二

区间修改、区间求和 lanqiaoOJ题号1133
【题目描述】
给定一个长度为n的数组,其初值分别为a1, a2, …, an。有m个操作,操作有两种:
1 l r k,将区间al+1, …, ar的值加上k。
2 l r,求区间al, al+1 ,…, ar的和是多少。
【输入描述】
输入第1行包含两个正整数n,m,分别表示数组a的长度和操作的个数。
第2行包含N 个非负整数a1,a2,…,an,表示数组a元素的初值。第3∼Q−2行每行表示一个操作,格式如题
【输出描述】
对每个求和输出1行,每行包含一个整数,表示相应查询的答案。

题目分析

  1. 分别将操作和原始数组存放在两个列表中。
  2. 遍历操作判断是1还是2 若1则需加k否则,2直接用内置函数sum求和。
  3. 成功的超时了。。。通过率只有30%
  4. 如若要满分需要用到树的内容,后期更新

30分题解

n ,q = list(map(int, input().split()))
a = [int(i)  for i  in input().split()]
for i in range(q):s=list(map(int, input().split()))#执行加k操作l = s[1]-1 r = s[2]-1if s[0]==1:k = s[3]for j in range(l,r+1):a[j] += kelse:print(sum(a[l:r+1]))

题目三

题号 1518但现在在OJ找不到
问题描述
  有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。
输入格式
  第一行一个整数n。
  第二行一个整数x。表示第一辆自行车的编号。
  以下n-1行,每行3个整数x,y,z。
  z=0时,表示编号为x的自行车恰停放在编号为y的自行车的左边
  z=1时,表示编号为x的自行车恰停放在编号为y的自行车的右边
输出格式
  从左到右输出停车棚里的自行车编号
样例输入

4
3
1 3 1
2 1 0
5 2 1

样例输出

3 2 5 1

题目分析

  1. Python中的列表可以当做链表使用,也可以当做队列、栈、数组使用,需要熟练掌握其内置函数的所有用法,增删改查必不可少。
l=[]
l.index()#索引
l.insert()#插入
l.append()#追加
l.count()#计数
l.remove()#删除
l.pop()#移除并返回删除的值
l.sort()#排序
l.clear()#清空列表
l.copy()#复制
l.extend()#追加可迭代对象
l.reverse()#返转
  1. 常规输入,之后判断操作是插入的放右边还是左边,最后遍历存放好的列表即可。

题解

n=int(input())
x=input()
l=[]
l1=[x]
for i in range(n-1):l.append(input().split())
for i in l:#print(i)if i[2]==1:l1.insert(l1.index(i[1]),i[0])else:l1.insert(l1.index(i[1])+1,i[0])
for i in l1:print(i,end=" ")

题解优化

n=int(input())
x=int(input())
l=[]
l1=[x]
for i in range(n-1):x,y,z=map(int,input().split())if z==0:#左边l1.insert(l1.index(y),x)else:#右边l1.insert(l1.index(y)+1,x)
for i in l1:print(i,end=" ")

题目四

请添加图片描述

题目分析

  1. 本题其实是练习数据结构中链表的操作,对于python来说使用列表可以方便的实现,这体现出python语言的方便。
  2. 多多练习列表方法即可很快实现,简单,不多赘述。
a=list(int(i) for i in range(1,11))#生成原始数组
b=[]#存放重排序之后的
n=int(input())
for i in range(n):x=int(input())index=a.index(x)a.pop(index)a.insert(0,x)for j in a:b.append(j)
sum=0#计数器
for i in b:print(i,end=" ")sum+=1if sum%10==0:#每十个就换行输出print(end="\n")#注意print()中参数的使用方法,等价于print("")

题目五

请添加图片描述

题解

n,k,m=map(int,(input().split()))
l=list(range(1,n+1))#人为1到10
i=k-1#位序从零开始所以减1
while len(l)>0:#只要有人没出来i=(i+m-1)%len(l)#报数又是从1开始报数所以减一print(l.pop(i))#人出去

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ai写作软件手机版哪个好用?这些软件了解一下

ai写作软件手机版哪个好用&#xff1f;随着人工智能技术的不断发展&#xff0c;手机版的AI写作软件也日益受到人们的关注。这些软件不仅能够帮助用户快速生成高质量的文本内容&#xff0c;还支持多种语言&#xff0c;满足不同用户的需求。本文将为你介绍几款知名的手机版AI写作…

PyCharm 快捷键(Ctrl + R)正则表达式批量替换

目录 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 三、点击全部替换 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 在第一个框输入 (.*): (.*) 第二个框输入 $1:$2, 三、点击全部替换

大模型学习与实践笔记(九)

一、LMDeply方式部署 使用 LMDeploy 以本地对话方式部署 InternLM-Chat-7B 模型&#xff0c;生成 300 字的小故事 2.api 方式部署 运行 结果&#xff1a; 显存占用&#xff1a; 二、报错与解决方案 在使用命令&#xff0c;对lmdeploy 进行源码安装是时&#xff0c;报错 1.源…

一款开源且不限制大小可以设置过期时间的支持分享的的开源文件共享系统picoshare 部署教程

1.拉取镜像 2.部署 创建目录 mkdir -p /opt/picoshare/data 部署 其中:"somesecretpass"是密码 docker run \--env "PORT4001" \--env "PS_SHARED_SECRETsomesecretpass" \--publish 10005:4001/tcp \--volume "/opt/picoshare/data:…

目标检测--01

基本概念 什么是目标检测&#xff1f; ​ 目标检测&#xff08;Object Detection&#xff09;的任务是找出图像中所有感兴趣的目标&#xff08;物体&#xff09;&#xff0c;确定它们的类别和位置&#xff0c;是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状…

深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?

深度学习和机器学习中针对非时间序列的回归任务&#xff0c;有哪些改进角度&#xff1f; 目录 深度学习和机器学习中针对非时间序列的回归任务&#xff0c;有哪些改进角度&#xff1f;引言1 数据预处理2 数据集增强3 特征选择4 模型选择5 模型正则化与泛化6 优化器7 学习率8 超…

阿里云ECS(CentOS镜像)安装docker

目录 1.前置条件 2.连接至ECS 3.yum软件包更新 4.安装docker前置所需软件包 5.添加docker 官方的 yum 软件源 6.安装docker 7.检测是否成功 8.配置阿里云镜像加速器 1.前置条件 在看本文前保证未安装过docker,或者安装过但是清理干净 如果多次安装失败过&#xff0c;…

使用 MinIO 和 PostgreSQL 简化数据事件

本教程将教您如何使用 Docker 和 Docker Compose 在 MinIO 和 PostgreSQL 之间设置和管理数据事件&#xff0c;也称为存储桶或对象事件。 您可能已经在利用 MinIO 事件与外部服务进行通信&#xff0c;现在您将通过使用 PostgreSQL 自动化和简化数据事件管理来增强数据处理能力…

基于R语言的NDVI的Sen-MK趋势检验

本实验拟分析艾比湖地区2010年至2020年间的NDVI数据&#xff0c;数据从MODIS遥感影像中提取的NDVI值&#xff0c;在GEE遥感云平台上将影像数据下载下来。代码如下&#xff1a; import ee import geemap geemap.set_proxy(port7890)# 设置全局网络代理 Map geemap.Map()# 指定…

CSV文件中json列的处理2

如上所示&#xff0c;csv文件中包含以中括号{}包含的json字段&#xff0c;可用如下方法提取&#xff1a; import pandas as pd from datetime import date todaystr(date.today()) import jsonfilepath/Users/kangyongqing/Documents/kangyq/202401/调课功能使用统计/ file104…

手动添加测试用例配置输入参数和期望值

1.选中函数&#xff0c;点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于&#xff0c;这里插入测试用例是手动配置的&#xff0c;之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后&#xff0c;点击测试用例&…

MacOS受欢迎的数据库开发工具 Navicat Premium 15 中文版

Navicat Premium 15 Mac是一款数据库管理工具&#xff0c;提供了一个全面的解决方案&#xff0c;用于连接、管理和维护各种数据库系统。以下是Navicat Premium 15 Mac的一些主要功能和特点&#xff1a; 软件下载&#xff1a;Navicat Premium 15 中文版下载 多平台支持&#xff…