蓝桥杯真题(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-1
  nx,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,ny
  print(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]-1
  if s[0]==1:
    k = s[3]
    for j in range(l,r+1):
      a[j] += k
  else:
    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+=1
  if 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))#人出去

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

橘子学K8S04之重新认识Docker容器

我们之前分别从 Linux Namespace 的隔离能力、Linux Cgroups 的限制能力&#xff0c;以及基于 rootfs 的文件系统三个角度来理解了一下关于容器的核心实现原理。 这里一定注意说的是Linux环境&#xff0c;因为Linux Docker (namespaces cgroups rootfs) ! Docker on Mac (bas…

为什么需要放行回源IP

为什么需要放行回源IP 网站以“独享模式”成功接入WAF后&#xff0c;所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控&#xff0c;经独享引擎实例过滤后再返回到源站服务器&#xff0c;流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…

接近8000字的SpringSpring常用注解总结!安排

接近8000字的Spring/Spring常用注解总结&#xff01;安排 为什么要写这篇文章&#xff1f; 最近看到网上有一篇关于 SpringBoot 常用注解的文章被转载的比较多&#xff0c;我看了文章内容之后属实觉得质量有点低&#xff0c;并且有点会误导没有太多实际使用经验的人&#xff…

力扣刷MySQL-第三弹(详细讲解)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

css 居中方式

居中分为水平居中和垂直居中 1. 水平居中1.1 文字text-align:center;1.2 盒子1.2.1&#xff1a;inline-block text-align 一 center;1.2.2&#xff1a;absolutetransform 一 父元素 display:relative;子元素 display:absolute; left:50%;transform: translatex(-50%);1.2.3&a…

vue2踩坑之项目:vue2+element实现前端导出

1.安装插件依赖 npm i --save xlsx0.17.0 file-saver2.0.5 2.单页面引入 前端导出插件 import FileSaver from "file-saver"; import * as XLSX from "xlsx"; //html <el-form-item><el-button type"primary" plain size"mini&quo…

VirtualBox安装openSUSE-Leap-15.5虚拟机并配置网络

VirtualBox安装openSUSE-Leap-15.5虚拟机并配置网络 适用于在VirtualBox平台上安装openSUSE-Leap-15.5虚拟机。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径Oracle VM VirtualBoxVirtualBox-7.0.12-159484D:\softwareopenSUSE-Leapopen…

Ubuntu重启后进入initramfs导致无法开机

今晚&#xff0c;我的电脑意外关机&#xff0c;重新开机后打开了虚拟机后出现initramfs&#xff0c;一直无法开机。该虚拟机使用的是 vm17,系统是ubuntu20, 解决方案 使用如下命令查看和识别磁盘、分区或文件系统的信息 在initramfs后面输入 fsck /dev/sdb4 ,即修复上面损坏的…

模型Model:字符串列表模型QStringListModel

一、QStringListModel &#xff08;1&#xff09;功能&#xff1a;处理字符串列表的数据模型&#xff0c;可作为QListView的数据模型&#xff0c;在界面上显示和编辑字符串列表。 二、QStringListModel 类中的函数 1)、 QStringListModel(QObject *parent Q_NULLPTR) //构造函…

前后端分离,仓储模式的医院安全(不良)事件报告系统

医院安全&#xff08;不良&#xff09;事件报告系统源码&#xff0c;PHP语言开发 医院不良事件上报系统&#xff0c;按照不良事件的管理部门不同&#xff0c;分为护理不良事件、药品不良反应事件、医技不良事件、院内感染事件、输血不良反应事件、器械不良事件、信息不良事件、…

【EI会议征稿通知】第五届电子商务与互联网技术国际学术会议(ECIT 2024)

2023 4th International Conference on E-Commerce and Internet Technology 第五届电子商务与互联网技术国际学术会议(ECIT 2024) 电子商务是以信息网络技术为手段&#xff0c;以商品交换为中心的商业活动。在互联网开放的网络环境下&#xff0c;基于客户端/服务端应用方式&…

Go语言圣经总结——基础/复合数据类型

一、程序结构 1.1 命令行参数 os 包以跨平台的方式&#xff0c;提供了一些与操作系统交互的函数和变量。程序的命令行参数可从 os 包的 Args 变量获取&#xff1b;os 包外部使用 os.Args 访问该变量。 var s, sep string // 第一种循环 for i : 1; i < len(os.Args); i {…

移动端开发进阶之蓝牙通讯(四)

移动端开发进阶之蓝牙通讯(四) 在移动端开发实践中,可能会要求在不同的设备之间切换,从而提升用户体验; 或者为了提升设备的利用率,实现设备之间的连接和协同工作; 不得不通过多端连接,将多个设备连接在一起,实现设备之间的数据共享、远程控制等功能,根据具体的应用…

HANA:存储过程(Procedures) DBUG

作者 idan lian 如需转载备注出处 如果对你有帮助&#xff0c;请点赞收藏~~~ 1.场景 最近不是写了蛮多hana的存储过程吗&#xff0c;如果是简单的增删改查&#xff0c;如果结果错了&#xff0c;还是比较容易找到错误在哪的&#xff0c;但是逐渐假如循环啊&#xff0c;变量判…

Docker之nacos集群部署

前言 Nacos 是一个开源的注册中心和配置中心&#xff0c;用于实现微服务架构中的服务发现、服务治理和动态配置管理。在 Docker 中使用 Nacos&#xff0c;你可以通过拉取官方提供的 Docker 镜像并运行容器的方式来快速部署 一.Nacos镜像拉取及独立模式 镜像拉取命令详解&…

渗透测试(14)- HTTP协议解析

HTTP(HyperText Transfer Protocol)即 超文本传输协议 &#xff0c;是一种详细规定了浏览器和 服务器之间互相通信的规则&#xff0c;它是万维网交换信息的基础&#xff0c;它允许将 HTML( 超文本标 记语言 ) 文档从 Web 服务器传送到Web 浏览器&#xff0c;用于客户端和服务器…

目标检测--01

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

【openwrt】【overlayfs】Openwrt系统overlayfs挂载流程

overlayfs是一种叠加文件系统&#xff0c;在openwrt和安卓系统中都有很广泛的应用&#xff0c;overlayfs通常用于将只读根文件系统(rootfs)和可写文件系统(jffs2)进行叠加后形成一个新的文件系统&#xff0c;这个新的文件系统“看起来”是可读写的&#xff0c;这种做法的好处是…

软件设计师6--流水线技术

软件设计师6--流水线技术 考点1&#xff1a;流水线--概念考点2&#xff1a;流水线--流水线计算考点3&#xff1a;流水线--流水线吞吐率计算例题&#xff1a; 考点1&#xff1a;流水线–概念 相关参数计算&#xff1a; 流水线执行时间计算、流水线吞吐率、流水线加速比、流水线…

如何使用视频下载助手获取公众号视频链接

微信公众号视频链接如何提取呢&#xff1f;今天就来说视频下载助手提取微信公众号的视频链接! 1:公众号获取视频下载助手二维码&#xff0c;并长按添加 2:找到需要下载的公众号带有视频的文章并转发给视频下载助手 3:提取完成后用户可以在视频下载助手中点击返回提取好的视频并…