第十二届蓝桥杯大赛python模拟赛(第三期 前五道复盘


做了次测试,做前面五道题的时候心态很炸,,昨天做的时候结果感觉不是很好,回来做个复盘。。。
在这里插入图片描述
第一题
在这里插入图片描述
都在刷算法,,好久没看这些东西了,, 记得考的时候没写出来,我记得当时忘记啥是公约数了,没看懂题目。。。。
现在重新做,,,,假设 A =2 A的公因数为 1 2 ;A=3 A的公因数为 13
我的构思: 既然A和2020有某个共同的数,那么肯定是找 两个共同因数(最大)
构思后的思路: 定义一个函数,这 个数不能是2020的公因数,也不能位数为5。。所以我是这样写的。

i=1;arr=[]
def code(num):
   if 2020%num!=0:
    a=str(num)
    if a[-1]=="9" or a[-1]=="7" or a[-1]=="3" or a[-1]=="1":#做筛选不能写错
        return num
    else:
        return -1
   else:
        return -1
while(i<=2020):
    if code(i)!=-1:
        arr.append(i)
        i+=1
    else:
        i+=1
print(arr)
print(len(arr))

在这里插入图片描述

自我感觉: 很麻烦,第一题而已,但可惜我数学不好。。

第二题:
在这里插入图片描述

我的构思: 记得当时想一个一个加,但后来又想想,有ascii码还加个毛。。直接ord(‘x’)

print(ord('A')) #return 66
print(ord('Q'))#return 81

自我感觉:这是最好做的一道题。。。

第三题:
在这里插入图片描述
我的构思: 记得当时又没看懂题目,不知道为什么,看个题很费力。还觉得为啥从27就直接到702列了?
想了想 一个数遍历26,26**26刚好676个数。。
然后他问第2021个数是啥?
我的思路:他长度肯定为3,当第一个数为A时,后面就要遍历676个数,所以第一个数676*2+702=2054>2021,值为B,

dir=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','S','Y','Z']
arr=[]
i='A';j='B'
ij=i+j
print(ij)
for i in dir:
        for j in dir:
            for k in dir:
                ijk=i+j+k
                arr.append(ijk)
print(arr[2020-702])

在这里插入图片描述

自我感觉: 只是觉得数学菜啊,这样一道题写20来分钟,后面6-9压力很大的

第四题是一道二叉树的题,记得当时随便填了个数,忘记截图了,惨败

第五题
在这里插入图片描述
我的构思:首先当时做的时候还是没思路,不知道是太紧张还是怎么了。。
还有后面那个1<=v<p写错了。。因为是推不出后面那串5,1的。

我的思路:a[2]的值是用a[1]算的,a[3]的值是用a[2]的值算的;所以用一个数组存a[2]的值,就能算出a[3]的值.

arr=[]
arr.append(1160);p=2021;i=1
while(p%arr[i-1]!=0):
    arr.append(p%arr[i-1])
    i+=1
print(arr)
print(len(arr))

在这里插入图片描述
复盘后的思考:

1.学一点excel处理数据,会拉下表就行。

2.心态不要炸,争取1小时半内结束,不要影响后面67 和89

3.大题一定要会dfs,可以不会快排||选排,,,但这个一定要多练

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ECHO::

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值