0
点赞
收藏
分享

微信扫一扫

第十一届蓝桥杯大赛软件类决赛 Python大学组

minute_5 2022-03-30 阅读 61

填空(答案已测试)

试题A:美丽的2(5)

在这里插入图片描述

count=0
for i in range(1,2021):
    if "2" in str(i):
        count+=1
print(count)

在这里插入图片描述

试题B:合数个数

在这里插入图片描述

count=0
for i in range(4,2021):
    for j in range(2,i):
        if i%j==0:
            count+=1
            break
print(count)

在这里插入图片描述

试题C:阶乘约数(10

在这里插入图片描述

试题D:本质上升序列

在这里插入图片描述

tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhf
iadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqij
gihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmad
vrnaaahahndsikzssoywakgnffjaihtniptwoulxbaeqkqhfwl

试题E:玩具蛇(15)

在这里插入图片描述

编程

试题F:天干地支(15)

在这里插入图片描述
在这里插入图片描述

t=["jia","yi","bing","ding","wu","ji","geng","xin","ren","gui"]
d=["zi","chou","yin","mao","chen","si","wu","wei","shen","you","wu","hai"]
n=int(input())
if n >2020:
    print(t[((n-2020)%10+6)%10],end="")
    print(d[(n-2020)%12],end="")
else:
    print(t[(6-(2020-n)%10)%10],end="")
    print(d[(12-(2020-n)%12)%12],end="")
print()

在这里插入图片描述

t=["geng","xin","ren","gui","jia","yi","bing","ding","wu","ji"]
d=["zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"]
n=int(input())
m=(n-2020)%10
q=(n-2020)%12
print(t[m]+d[q])

试题G:重复字符串(20)

在这里插入图片描述

k=int(input())
s=input()
if len(s)%k!=0:#排除不能均分k个字符串的情况
    print(-1)
else:
    ans=[]
    lenn=int(len(s)/k)
    li=[s[i:lenn+i] for i in range(0,len(s),lenn)]
    #暴力,按照哪个来修改呢,全部计算一遍
    for i in range(k):
        count=0
        for j in range(k):
            if i == j:continue
            for l in range(lenn):
                if li[i][l]!=li[j][l]:
                    count+=1
        ans.append(count)
    print(min(ans))

在这里插入图片描述

试题H:答疑(20)

在这里插入图片描述

n= int(input())
time=[]
res=0
for i in range(n):
    m,p,q=map(int,input().split())
    res=max(q,res)
    time.append([m+p,q])
time.sort(key=lambda x:(x[0],x[1])
##for i in range(n-1,-1,-1):
##    if time[i][1]==res:
##        li=time.pop(i)
##        time.append(li)
pre=0
cur=0
ans=[]
for i in time:
    cur=i[0]+pre
    ans.append(cur)
    pre=i[0]+i[1]+pre
print(sum(ans))

在这里插入图片描述

n= int(input())
time=[]
res=0
for i in range(n):
    m,p,q=map(int,input().split())
    res=max(q,res)
    time.append([m+p,q])
time.sort(key=lambda x:(x[0]+x[1]))#变成+号就是100
pre=0
cur=0
ans=[]
for i in time:
    cur=i[0]+pre
    ans.append(cur)
    pre=i[0]+i[1]+pre
print(sum(ans))

在这里插入图片描述

试题I:补给(25)

在这里插入图片描述

试题J:蓝跳跳(25)

在这里插入图片描述
在这里插入图片描述

k,p,L=map(int,input().split())
can=[(i+1) for i in range(k)]
path=[]
count=[0]
def backtracking(can,count):
    if sum(path)==L:
        count[0]+=1
        return
    if sum(path)>L:
        return
    for i in range(k):
        if i+1>=p and path:
            if path[-1]>=p :
                continue
        path.append(can[i])
        backtracking(can,count)
        path.pop()
 
backtracking(can,count)
print(count[0]%20201114)

举报

相关推荐

0 条评论