承重计算
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