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

复盘

    • 1.学一点excel处理数据,会拉下表就行。
    • 2.心态不要炸,争取1小时半内结束,不要影响后面67 和89
    • 3.**大题一定要会dfs,可以不会快排||选排,,,但这个一定要多练**

做了次测试,做前面五道题的时候心态很炸,,昨天做的时候结果感觉不是很好,回来做个复盘。。。
第十二届蓝桥杯大赛python模拟赛(第三期 前五道复盘_第1张图片
第一题
在这里插入图片描述
都在刷算法,,好久没看这些东西了,, 记得考的时候没写出来,我记得当时忘记啥是公约数了,没看懂题目。。。。
现在重新做,,,,假设 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))

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

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

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

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

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

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

第三题:
第十二届蓝桥杯大赛python模拟赛(第三期 前五道复盘_第3张图片
我的构思: 记得当时又没看懂题目,不知道为什么,看个题很费力。还觉得为啥从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])

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

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

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

第五题
第十二届蓝桥杯大赛python模拟赛(第三期 前五道复盘_第5张图片
我的构思:首先当时做的时候还是没思路,不知道是太紧张还是怎么了。。
还有后面那个1<=v

我的思路: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))

第十二届蓝桥杯大赛python模拟赛(第三期 前五道复盘_第6张图片
复盘后的思考:

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

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

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

你可能感兴趣的:(笔记,python,列表)