2022蓝桥杯python笔记 题库

承重计算

 

data=[[7],
[5,8],
[7,8,8],
[9,2,7,2],
[8,1,4,9,1],
[8,1,8,8,4,1],
[7,9,6,1,4,5,4],
[5,6,5,5,6,9,5,6],
[5,5,4,7,9,3,5,5,1],
[7,5,7,9,7,4,7,3,3,1],
[4,6,4,5,5,8,8,3,2,4,3],
[1,1,3,3,1,6,6,5,5,4,4,2],
[9,9,9,2,1,9,1,9,2,9,5,7,9],
[4,3,3,7,7,9,3,6,1,3,8,8,3,7],
[3,6,8,1,5,3,9,5,8,3,8,1,8,3,3],
[8,3,2,3,3,5,5,8,5,4,2,8,6,7,6,9],
[8,1,8,1,8,4,6,2,2,1,7,9,4,2,3,3,4],
[2,8,4,2,2,9,9,2,8,3,4,9,6,3,9,4,6,9],
[7,9,7,4,9,7,6,6,2,8,9,4,1,8,1,7,2,1,6],
[9,2,8,6,4,2,7,9,5,4,1,2,5,1,7,3,9,8,3,3],
[5,2,1,6,7,9,3,2,8,9,5,5,6,6,6,2,1,8,7,9,9],
[6,7,1,8,8,7,5,3,6,5,4,7,3,4,6,7,8,1,3,2,7,4],
[2,2,6,3,5,3,4,9,2,4,5,7,6,6,3,2,7,2,4,8,5,5,4],
[7,4,4,5,8,3,3,8,1,8,6,3,2,1,6,2,6,4,6,3,8,2,9,6],
[1,2,4,1,3,3,5,3,4,9,6,3,8,6,5,9,1,5,3,2,6,8,8,5,3],
[2,2,7,9,3,3,2,8,6,9,8,4,4,9,5,8,2,6,3,4,8,4,9,3,8,8],
[7,7,7,9,7,5,2,7,9,2,5,1,9,2,6,5,3,9,3,5,7,3,5,4,2,8,9,],
[7,7,6,6,8,7,5,5,8,2,4,7,7,4,7,2,6,9,2,1,8,2,9,8,5,7,3,6],
[5,9,4,5,5,7,5,5,6,3,5,3,9,5,8,9,5,4,1,2,6,1,4,3,5,3,2,4,1],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
for i in range(1,30):
  for j in range(i+1):
    if(j==0):  
      data[i][j]+=data[i-1][0]/2.0
    elif j==i:
      data[i][j] += data[i-1][j-1]/2.0
    else:
      data[i][j]+=data[i-1][j-1]/2.0+data[i-1][j]/2.0
print(int(2086458231/min(data[29])*max(data[29])))

相乘

for i in range(100000,100000000):
  if i*2021%1000000007==999999999:
    print(i)
    break

#print(17812964)

完全二叉树的权值

import math

n=int(input())
arr=[int(i) for i in input().split()]
deep=int(math.log(2,n)+1
ans=[]
for i in range(deep):
  ans.append(sum(arr[2**i-1:2**i*2-1])
print(ans.index(max(ans))+1)

时间显示

ms_in = int(input())
s_in = int(ms_in / 1000)  # 舍去ms部分转为秒
min_in = int(s_in / 60)
s = s_in % 60  # 秒部分
h_in = int(min_in / 60)
m = min_in % 60# 分部分
h = h_in % 24# 时部分
print("%02d:%02d:%02d" % (h, m, s))

等差素数列

对于长度为k的素数等差数列,它们的公差能被小于k的所有素数整除
print(2*3*5*7)

路径

from math import *
import sys
max=sys.maxsize
def lcm(x,y):
  return x*y//gcd(x,y)
dp=[max]*2022
dp[1]=0
for i in range(1,2022):
  for j in range(i+1,i+22):
    if j>2021:
      break
    lcmv=lcm(i,j)
    dp[j]=min(dp[j],dp[i]+lcmv)
print(dp[2021])

#10266837

跳跃

n,m=(int(x) for x in input().split())
map1=[]
for i in range(n):
    a=[int(x) for x in input().split()]
    map1.append(a)
dp=[[-100]*(m+3) for i in range(n+3)]

for i in range(3,n+3):
    for j in range(3,m+3):
        if i==3 and j==3:
            dp[i][j]=map1[i-3][j-3]
        else:
            dp[i][j]=map1[i-3][j-3]+max(dp[i-1][j],dp[i-2][j],dp[i-3][j],dp[i-1][j-1],
            dp[i-1][j-2],dp[i-2][j-1],dp[i-2][j-2],dp[i][j-1],dp[i][j-2],dp[i][j-3])

print(dp[-1][-1])

最大降雨量


不需要去管前面的,只需要第四周的时候达到当前的最大值就行
1 2 3 46 47 48 49 46 第七周
4 5 6 42 43 44 4
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值