目录
蓝桥杯的题目有的难度还是挺大的
1.1242. 修改数组 - AcWing题库
def find(x):
if p[x]!=x:
p[x]=find(p[x])
return p[x]
N=1100002
p=[i for i in range(N)]
n=int(input())
a=list(map(int,input().split()))
for i in a:
x=find(i)
print(x,end=" ")
p[x]=x+1
2.1234. 倍数问题 - AcWing题库
n,k=map(int,input().split())
a=list(map(int,input().split()))
dp=[[-1<<31 for z in range(4)] for j in range(k)]
dp[0][0]=0
martix=[[]for i in range(k)]
for i in a:
martix[i%k].append(i)
for i in martix:
i.sort(reverse=True)
for i in range(k):
for x in range(min(3,len(martix[i]))):
value=martix[i][x]
for z in range(3, 0, -1):
for j in range(k):
dp[j][z]=max(dp[j][z],value+dp[(j-value%k+k)%k][z-1])
print(dp[0][3])
3.