因为众所周知的缘故,今年蓝桥杯很多地方改成了线上。暴力圈钱杯变成了厕所抄袭杯...不过实际情况比我想象中要好一点点。填空题由五道改成了两道,大题变成了八道。一定程度上减少了一些抄袭情况,当然完全避免肯定还是不可能的...
考前模拟时系统崩溃了,很担心考试时再出现这种情况,不过还好正式比赛时并没有出现这种情况。但是还是要吐槽几点:
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 的正整数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)