蓝桥杯赛前真题 Python组 Day 3

填空题也考DP???

麻了,这是国赛题吧,润去做省赛题去

import math #导入math库
# print(math.gcd(a,b)) #利用函数求解最大公约数
# print(a*b/math.gcd(a,b)) #利用上面的函数求解最小公倍数

n = 2021
# 最大公约数,辗转相除
def gcd(a,b):
    if a<b:
        a,b = b,a
    while (a%b != 0):
        a,b = b,a%b

    return b

# 最小公约数
def lcm(a,b):
    x = a*b
    return x//gcd(a,b)

# 2022个无穷大
# float('inf') 无穷大 
dp = [float('inf')]*2022
dp[1] = 0

for i in range(1,n+1):
    for j in range(i+1,i+22):
        if j > 2021:
            break
        dp[j] = min(dp[j],dp[i]+lcm(i,j))

# 10266837

 

n = int(input())
n=n/1000
shi = int(n/(60*60)%24)
fen = int(n/60%60)
miao = int(n%60)

print("%02d:%02d:%02d"%(shi,fen,miao))

 

还是只能完成40%,寄

进步体现在我会使用list.index返回下标了,win

 

n = int(input())


thisline = [1]
lastline = [1]
sumline = []

for i in range(1750):
    thisline = [0 for x in range(i+1)]
    for j in range(i+1):
        if j == 0:
            thisline[0] = 1
        elif j == i:
            thisline[j] = 1
        else:
            thisline[j] = lastline[j] + lastline[j-1]

        sumline.append(thisline[j])
    
    sumline = sumline
    lastline = thisline
    del thisline

print(sumline.index(n)+1)
        
    
        

 

压轴题,不会,但是在网上找到一道往年类似的填空题。用到了排列数

由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?

 python中itertools.permutations(iterator)可以生成所有排列情况

import itertools
def check(ls):
    if ls[0] == ')':
        return False
    stack = []
    for i in ls:
        if i == '(':
            stack.append(i)
        elif i == ')':
            if len(stack) == 0 or stack.pop() != '(':
                return False

    return True

ls = list(itertools.permutations(['(', ')', '(', ')', '(', ')', '(', ')']))


ans = set()
for i in ls:
    if check(i):
        ans.add(i)
print(len(ans))

# 14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值