2022年第十三届蓝桥杯研究生Python组题目分享

2022年第十三届蓝桥杯研究生Python组题目分享,第1张

4.28更新:最后拿了省二.... 1.比赛过程总结

因为众所周知的缘故,今年蓝桥杯很多地方改成了线上。暴力圈钱杯变成了厕所抄袭杯...不过实际情况比我想象中要好一点点。填空题由五道改成了两道,大题变成了八道。一定程度上减少了一些抄袭情况,当然完全避免肯定还是不可能的...

考前模拟时系统崩溃了,很担心考试时再出现这种情况,不过还好正式比赛时并没有出现这种情况。但是还是要吐槽几点:

1.参赛题目解压密码一开始始终解压不了文件,心态直接有点崩溃。直到开考八分钟后才解压成功,也不知道是什么问题...期间还特意下了一个新的解压软件。

2.监考软件只要一离开考试界面去看题目的PDF或者打开编程软件,就黄牌警告你...说你故意离开界面。把我给整不会了,问官方也一直不回复。过来二十分钟才通知是系统问题...有点无语,最后统计黄牌警告了49次...

3.题目出的也有点问题,通知的就有两个题目样例错误。还有一道题目样例是最后二十分钟通知的...

4.腾讯会议貌似一个考场35个人,好像也是研究生兼职监考。貌似也不怎么看,有时申请上厕所都半天不理..离谱。

然后大家参赛的话要注意以下几点:

1.可以使用其他编程软件,Pycharm什么的,不是限定idle。官方员工说的,实际考试时我用的vscode,也没什么问题。

2.双机位监考。后面的手机打开腾讯会议时可能会因为各自原因断开,比如掉地上了什么的,如果自己一直没注意的话就惨了。最好时不时注意以下有没有断开会议。

2.题目分享

虽然大家总说蓝桥杯是暴力杯,不过总的来说最近两年的题目质量还是不错的。只是它是按比例获奖,但是有些题目还是挺难的。最后我做了一道填空题,三道半大题。其他大题就把样例混了一下。估计保底省三吧,不知道有没有省二。研究生混个加分也不容易...以下是具体题目:

填空题1:裁纸刀

问题描述:小蓝有一个裁纸刀,每次可以将一张纸沿一条直线裁成两半。 小蓝用一张纸打印出两行三列共 6 个二维码,至少使用九次裁出来,下图给出了一种裁法:

#答案  送分题
443
填空题2:寻找整数

问题描述:有一个不超过 1017 的正整数 n,知道这个数除以 2 至 49 后的余数如下表 所示,求这个正整数最小是多少。

大题1:质因数个数

 问题描述:给定正整数 n,请问有多少个质数是 n 的约数

#质因数
#分解质因数
def f(x):
    i=2
    l=[]
    while i<=x:
        if x%i==0:
            l.append(i)
            x//=i
        else:
            i+=1
    return l

#print(f(396))
#判断是否是质数
def if_yes(x):
    if x<=1:
        return 0
    count=0
    for i in range(2,x+1):
        if x%i==0:
            count+=1
    if count==1:
        return 1
    else:
         return 0

n=int(input())
list1=f(n)
list2=[]
for i in list1:
    if if_yes(i)==1 and i not in list2:
        list2.append(i)
print(len(list2))
 大题2:矩形拼接

问题描述:已知 3 个矩形的大小依次是 a1 × b1, a2 × b2 和 a3 × b3。用这 3 个矩形能拼 出的所有多边形中,边数最少可以是多少? 例如用 3 × 2 的矩形(用 A 表示)、4 × 1 的矩形(用 B 表示)和 2 × 4 的矩 形(用 C 表示)可以拼出如下 4 边形。

 

 

 大题3:消除游戏

问题描述:在一个字符串 S 中,如果 S i = S i−1 且 S i , S i+1 ,则称 S i 和 S i+1 为边缘 字符。如果 S i , S i−1 且 S i = S i+1,则 S i−1 和 S i 也称为边缘字符。其它的字符 都不是边缘字符。 对于一个给定的串 S,一次 *** 作可以一次性删除该串中的所有边缘字符 ( *** 作后可能产生新的边缘字符)。 请问经过 2 64 次 *** 作后,字符串 S 变成了怎样的字符串,如果结果为空则 输出 EMPTY。

#消除游戏
strings=input()
need=''
list1=[0 for i in range(len(strings))]
#print(list1)
if len(strings)<=2:
    print(strings)
else:
    for j in range(1,2**18):
        if len(strings)==1:
            print(strings)
            break
        for i in range(len(strings)):
            #边缘特殊情况
            if i==0:
                if strings[i]==strings[i+1]:
                    list1[i]=1
            if i==len(strings)-1:
                if strings[i]==strings[i-1]:
                    list1[i]==1
            else:
            #print(strings[i-1],strings[i],strings[i+1])
                if strings[i]==strings[i-1] and strings[i]!=strings[i+1]:
                    list1[i]=list1[i+1]=1
                if strings[i]!=strings[i-1] and strings[i]==strings[i+1]:
                    list1[i]=list1[i-1]=1
        need=strings
        strings=""
        for i in range(len(list1)):
          if list1[i]==0:
            strings+=need[i]
        list1=[0 for i in range(len(strings))]
    if strings=="":
        print('EMPTY')
    else:
        if len(strings)>=2:
            print(strings)

 大题4:爬树的甲壳虫 问题描述:有一只甲壳虫想要爬上一颗高度为 n 的树,它一开始位于树根,高度为 0, 当它尝试从高度 i − 1 爬到高度为 i 的位置时有 Pi 的概率会掉回树根,求它从 树根爬到树顶时,经过的时间的期望值是多少

 

 大题5:技能升级 问题描述:小蓝最近正在玩一款 RPG 游戏。他的角色一共有 N 个可以加攻击力的技 能。其中第 i 个技能首次升级可以提升 Ai 点攻击力,以后每次升级增加的点数 都会减少 Bi。⌈ Ai Bi ⌉ (上取整) 次之后,再升级该技能将不会改变攻击力。 现在小蓝可以总计升级 M 次技能,他可以任意选择升级的技能和次数。请 你计算小蓝最多可以提高多少点攻击力?

#技能升级
#发现最大值
def finds(list4):
    max=0
    flags=-1
    for i in range(len(list4)):
        if list4[i]>max:
            max=list4[i]
            flags=i
    return max,flags

n,m=map(int,input().split())
list3=[]
list1=[[0 for j in range(2)]for i in range(n)]
#print(list1)
for i in range(n):
    list1[i]=list(map(int,input().split()))
    list3.append(int(list1[i][0]))



'''
list1=[[10, 5], [9, 2], [8, 1]]
list2=[2, 5, 8]
list3=[10,9,8]
'''

count=0
for i in range(m):
    maxs,flags=finds(list3)
    count+=maxs
    list3[flags]=list3[flags]-list1[flags][1]
    if list3[flags]<=0:
        list3[flags]=0
    #print(count,flags,list3)
print(count)

 大题6:因数平方和 问题描述:记 f(x) 为 x 的所有因数的平方的和。例如:f(12) = 12 + 22 + 32 + 42 + 62 + 122。 定义 g(n) = ∑n i=1 f(i) 。给定 n, 求 g(n) 除以 109 + 7 的余数

 大题7:扫描游戏 问题描述:有一根围绕原点 O 顺时针旋转的棒 OA,初始时指向正上方(Y 轴正向)。 在平面中有若干物件,第 i 个物件的坐标为 (xi , yi) ,价值为 zi。当棒扫到某个 物件时,棒的长度会瞬间增长 zi,且物件瞬间消失(棒的顶端恰好碰到物件也 视为扫到),如果此时增长完的棒又额外碰到了其他物件,也按上述方式消去 (它和上述那个点视为同时消失)。 如果将物件按照消失的时间排序,则每个物件有一个排名,同时消失的物 件排名相同,请输出每个物件的排名,如果物件永远不会消失则输出 −1

 大题8:数的拆分 问题描述:给定 T 个正整数 ai,分别问每个 ai 能否表示为 x y1 1 · x y2 2 的形式,其中 x1, x2 为正整数,y1, y2 为大于等于 2 的正整数

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/788453.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存