Voici le code python qui trouvera le nombre de composants maximum (maximum de nœuds connectés) dans un graphique. Cependant, il n'est pas une solution optimale (a.k.a, lent), mais pourrait être utile pour vous de commencer
#!/bin/python
max_count = 0
def count_components(adj_list,r,c,count):
global max_count
row = adj_list[r]
#count
connections = 0
for j in range(len(row)):
if row[j]==1:
connections+=1
count+=connections
#traverse
for j in range(len(row)):
if row[j]==1:
adj_list[j][r]=0
count_components(adj_list,j,r,count)
#print 'count = {}'.format(count)
if count>max_count:
max_count = count
def get_max_num_of_connected_component(adj_list):
for i in range(len(adj_list)):
row = adj_list[i]
for j in range(len(row)):
if row[j]==1:
count_components(adj_list,i,j,1)
break
#print_adjecency_list(adj_list)
#print 'max_count = {}'.format(max_count)
return max_count
def print_adjecency_list(adj_list):
for i in range(len(adj_list)):
row = adj_list[i]
for j in range(len(row)):
print row[j],
print
print
import sys
n, m = raw_input().strip().split(' ')
n, m = [int(n), int(m)]
route = []
for route_i in xrange(m):
route_temp = map(int,raw_input().strip().split(' '))
route.append(route_temp)
# Write Your Code Here
# generate NxM adjecency list of
adjecency_list=[]
for i in range(n):
row = []
for j in range(n):
row.append(0)
adjecency_list.append(row)
for road in route:
r = road[0]-1
c = road[1]-1
adjecency_row = adjecency_list[r]
adjecency_row[c]=1
adjecency_list[r] = adjecency_row
r = road[1]-1
c = road[0]-1
adjecency_row = adjecency_list[r]
adjecency_row[c]=1
adjecency_list[r] = adjecency_row
#print_adjecency_list(adjecency_list)
print get_max_num_of_connected_component(adjecency_list)
Que voulez-vous dire par numéro « max »? Vous devez clarifier ce qu'est exactement l'entrée et la sortie. Avez-vous une liste de bord? Un nombre de nœuds? – VoidStar
Nous devons trouver la longueur maximale possible qui a traversé dans le graphique conçu par le point d'entrée donné. Par exemple INPUT {1 # 2,2 # 3,3 # 11,1 # 11,4 # 11,4 # 5,5 # 6,4 # 12} devrait sortir 7 comme résultat –