伯乐论坛网

搜索
查看: 133|回复: 1

【蓝桥杯考前七天】【十三届pythonB组真题详解】

[复制链接]

4

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-4-10 08:26:55 | 显示全部楼层 |阅读模式
前言

任其风华无限,难敌时间易老。 各位coder,一周后就要上考场验一验自己的代码水平了,从报名以来是否做到了每天两小时刷题?查找众多攻略是否真的把一个按顺序进行训练? 不知别人,小编没有,在今年的开放背景下,春季学期的前三周变成了考试周!结束后又想放松一下,加上学校的一些比赛和活动,真实刷题的时间寥寥,一开始肯定是简单的,因为肚子是空的,吃东西就好,但后面肚子渐渐变满,上顿的东西还没消化,下顿的又来了,过了一段时间消化不良的反应,终于重新回归! 最后一周让我们红尘作伴在此追逐一下最终的结果! 也不写7天规划了,每天找一套真题,干完就拉倒! 今天是第十三届蓝桥杯大赛软件赛省赛Python大学B组 总时间:4hours=240min 目标分数:50+!
A:排列字母





在这里插入图片描述

s="WHERETHEREISAWILLTHEREISAWAY"
c=[]
for i in s:
    c.append(i)
c.sort()
for i in c:
    print(i,end="")这题还是很简单的,如果怕写错,就数一数和答案对一下 time:8min以内 value:+5分
B:寻找整数





在这里插入图片描述

这一看是不是先得把非质数去掉呀,把质数留下运算
import os
import sys
dp = [(2, 1), (3, 2), (5, 4), (7, 4), (13, 10), (19, 18), (23, 15), (29, 16), (31, 27), (37, 22), (41, 1), (47, 5)]//质数列表
lcm=187//最小公倍数
ans=187
i=0
while i<len(dp):
    if ans%dp[0]==dp[1]://满足条件
        lcm*=dp[0]//乘到lcm上
        i+=1//次数+1
    else:
        ans+=lcm//不满足就+lcm继续检验
print(ans)time+=30min value+=5分 这题如果上来没想法建议直接跳过,5分写个半小时还是有点亏的,写不出来就更加亏了 看到网上还有个方法使用了中国剩余定理,看了半天没太懂,这题有点狗血
C:纸张尺寸





**题目描述**

l=1189
w=841
i=0
s=input()
n=int(s[-1])//把尺寸号截下来
for i in range(n)://长变宽,宽变长//2,次数就是尺寸号
  l,w=w,l//2
print(l)
print(w)这题简单10分血赚! time+=8 value+=10
D:数位排序





**题目描述**

这道题主要是排序,通过sort()的参数key,决定排序方法。 key=lambda x:sum(int(i) for i in str(x)) 另一个比较常用的参数reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
n=int(input())
m=int(input())
s=list(range(1,n+1))
s.sort(key=lambda x:sum(int(i) for i in str(x)))//重点内容记得背诵
print(s[m-1])time+=8min value+=10分
E:蜂巢





**题目描述**

这道题六个方向不好写,改成平面坐标方便思考,因为每个点到中间的距离相同,所以使用如下距离方式,都是2**0.5 原点就是(0,0),0方向:(-2,0),1方向:(-1,1),2方向:(1,1),3方向:(2,0),4方向:(1,-1),5方向:(-1,-1)
import os
import sys
def walk(d,q,x,y)://从(x,y)向d方向走q步
  x+=x_dir[d]*q
  y+=y_dir[d]*q
  return x,y
x_dir=[-2,-1,1,2,1,-1]//方向表
y_dir=[0,1,1,0,-1,-1]
d1,p1,q1,d2,p2,q2=map(int,input().split())
x1,y1=walk(d1,p1,0,0)
x1,y1=walk((d1+2)%6,q1,x1,y1)
x2,y2=walk(d2,p2,0,0)
x2,y2=walk((d2+2)%6,q2,x2,y2)
dx,dy=abs(x1-x2),abs(y1-y2)//算差值用于判断行走距离
if dx>=dy://如果dx方向位移更大,我们只能先横着走,在竖着走,不能通过六边形优势快速到达,距离就是两者和的一半
  print((dx+dy)//2)
else://如果dy方向差值很大,我们发现斜着走就够了,因为每次在x方向有着60°的偏转,大家可以自己换图随便找几个例子试试
  print(dy)time+=20min value+=15分 到此为止,如果以上5道题全部作对,那么拿个省二应该不成问题。 半期总结:这五道题中第二题难度最高,其他均可通过正常思考求解,预估时间两个小时以内,
F:消除游戏





**题目描述**

先读两遍题,看清要求是不相等的两个数为边界字符,所以样例一,经过两个判定条件,四个字母都为边界字符,全部删除为EMPTY 样例2:sdfhhhhcvhhxcxnnnnshh(加粗为删除字符) 第一轮过后先把在相同元素周围的字符删掉结果为=sdhhcnnh,第二轮就只剩s了
s=list(str(input()))
pre=s
f=False
for i in range(pow(2,64)):
    flag=[False]*len(s)
    for j in range(1,len(s)-1):
        if s[j]==s[j-1] and s[j]!=s[j+1]:
            flag[j]=True
            flag[j+1]=True
        if s[j]!=s[j-1] and s[j]==s[j+1]:
            flag[j-1]=True
            flag[j]=True
    for j in range(len(flag)):
        if flag[j]:
            s[j]=''
    s=list(''.join(s))
    if len(s)==0:
        f=True
        break
    if pre==s:
        break
    pre=s
if f:
    print('EMPTY')
else:
    print(''.join(s))time+=30min value+=15分 这题还是值得做的,写好判定条件,多编写几组样例测试。
G:全排列的价值









在这里插入图片描述

这题想不出来主打一个爆搜,但是你把内容写下来,你会发现,借用一个老哥的解释



在这里插入图片描述

a= int(input())
s= a*(a-1)/4
for i in range(1,a+1):
    s*=i
    s%=998244353
print(int(s))中国人的脑袋还是好使得! time+=15min value+=15
H:技能升级





在这里插入图片描述

import math
n, m = list(map(int, input().split()))
mp = {}//字典进行存储
for i in range(0, n):
    Ai, Bi = list(map(int, input().split()))
    mp[i + 1] = [Ai, Bi, 0]
# print(mp)
temp = sorted(mp.items(), key=lambda mp: mp[1][0], reverse=True)//通过当前value进行排序
# print(temp)
res = 0
for i in range(0, m):
    index = temp[0][0]
    A = temp[0][1][0]
    B = temp[0][1][1]
    times = temp[0][1][2]
    # print(index,A,B,times)
    if times >= math.ceil(A / B)://如果当前此技能已经升到满级了,就置零
        A = 0
        B = 0
    res += A
    A -= B
    times += 1
    mp[index] = [A, B, times]//善后处理,重新排序
    temp = sorted(mp.items(), key=lambda mp: mp[1][0], reverse=True)
print(res)



在这里插入图片描述

debug视图 time+=30min value+=20分
结语

最后两道题我就不写了,看了好久都没看懂,但如果前八道题,能AC5道以上,那么省二肯定是保底,省一就看你其他题的部分分拿的怎么样了,不管怎么说,这套题整体看来质量还是过关的 有三道送分的,全写对拿个奖保底没问题,数论、DP、贪婪算法,使用列表、字典、排序、二分,考察全面,质量过关!
回复

使用道具 举报

2

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-4-10 08:27:53 | 显示全部楼层
加油 共勉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2013 Comsenz Inc.Powered by Discuz!X3.4
快速回复 返回顶部 返回列表