第十四届蓝桥杯大赛软件赛省赛Python大学B组

2023

# 2023
def check(x):
    lst = list(str(x))
    idx =0
    for x in lst:
        if idx==0 and x=='2':
            idx+=1
        elif idx==1 and x=='0':
            idx+=1
        elif idx==2 and x=='2':
            idx+=1
        elif idx==3 and x=='3':
            return 0
    return 1
 
l = 12345678
r = 98765432
ans = 0
for i in range(l,r+1):
    if i %1000000==0:
        print(i)
    ans += check(i)
print(ans)
print(85959030)

硬币兑换(暴力)

def init():
    global a
    a = [0 for _ in range(4090)]
    for i in range(1,r+1):
        a[i]=i
def cal(x):
    global a
    cnt =0
    for i in range(1,x):
        if i+i==x:
            cnt+=(i//2)
        else:
            cnt+=(min(a[i],a[x-i]))
            a[i]-=min(a[i],a[x-i])
            a[x-i]-=min(a[i],a[x-i])
    return cnt

a = []
l =1
r = 2023
ans =0
for i in range(2,4047):
    init()
    ans = max(ans,cal(i))
print(ans)

保险箱

暴力20%

# 20%
def init(lst):
    for i in range(len(lst)):
        lst[i]=ord(lst[i])-ord('0')
    return lst

def jin(loc):
    # 进位
    global x
    for i in range(loc,-1,-1):
        x[loc] = (x[loc]+1)%10
        if x[loc] !=0:
            break
def tui(loc):
    # 退位
    global x
    for i in range(loc,-1,-1):
        if x[loc] !=0:
            x[loc] -=1
            break
        else :
            x[loc]=9
def jin_cal(x,y):
    if x<=y:
        return y-x ,0
    else :
        return y+10-x ,1
def tui_cal(x,y):
    if x>=y:
        return x-y ,0
    else :
        return x+10-y ,1
n = int(input())
x = init(list(input()))
y = init(list(input()))
ans =0
for i in range(n-1,-1,-1):
    n1 ,f1= jin_cal(x[i],y[i]) #进位
    n2 ,f2= tui_cal(x[i],y[i]) # 退位
    if n1<=n2:
        ans+=n1
        if f1==1:
            jin(i-1)
    else :
        ans+=n2
        if f2==1:
            tui(i-1)
print(ans)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值