g = [[float('inf')]*2030 for _ in range(2030)]
dist,st = [float('inf')]*2030,[False]*2030
def distance(a,b):
a = list(str(a))
b = list(str(b))
while len(b)<len(a):
b.insert(0,'0')
res = 0
for i in range(len(a)):
if int(a[i]) != int(b[i]):
res+=int(a[i])
res+=int(b[i])
return res
#print(distance(2021,922))
def prim():
res = 0
for i in range(2021):
t = -1
for j in range(1,2022):
if not st[j] and (t == -1 or dist[t]>dist[j]):
t = j
if i and dist[t] == float('inf'):
print('No answer')
if i:
res += dist[t]
st[t] = True
for j in range(1,2022):
dist[j] = min(dist[j], g[t][j])
print(res)
for i in range(1,2022):
for j in range(1,2022):
g[i][j] = distance(i,j)
g[j][i] = distance(i,j)
prim()
最小生成树g = [[float('inf')]*2030 for _ in range(2030)]dist,st = [float('inf')]*2030,[False]*2030def distance(a,b): a = list(str(a)) b = list(str(b)) while len(b)<len(a): b.insert(0,'0') res = 0 for i in range(len(a)): .