# 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)