Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование Сириус! Помогите пожалуйста!

Magic Frost Ученик (126), на голосовании 1 месяц назад
Нужно составить программу которая оптимально и быстро добавляет вершину в граф или добавляет ребро в граф (между двумя вершинами) или узнает есть ли путь между двумя вершинами! Пожалуйста помогите!
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9542) 2 месяца назад
 class Graph: 
def __init__(self):
self.nodes = {}

def add_node(self, value):
if value not in self.nodes:
self.nodes[value] = []

def add_edge(self, from_node, to_node):
if from_node in self.nodes and to_node in self.nodes:
self.nodes[from_node].append(to_node)
self.nodes[to_node].append(from_node)

def has_path(self, start, end):
visited = set()
return self._dfs(start, end, visited)

def _dfs(self, current, target, visited):
if current == target:
return True
visited.add(current)
for neighbor in self.nodes[current]:
if neighbor not in visited and self._dfs(neighbor, target, visited):
return True
return False

graph = Graph()
for node in ["A", "B", "C", "D"]:
graph.add_node(node)
graph.add_edge("A", "B")
graph.add_edge("A", "C")
graph.add_edge("B", "D")

print(graph.has_path("A", "D"))
Magic FrostУченик (126) 2 месяца назад
фигня ответ нейронки
Magic Frost, так и ставь дизлайк баклану. А задачу надо формулировать конкретно, иначе только такие гадалки и будут отвечать. Нейросети-то пофиг на работоспособность программы, она нагуглила кусок текста, где в условии - похожие слова, и выдала. Ботам тоже пофиг, их задача - спам, бессмысленный и беспощадный.
Похожие вопросы