минимальный путь RGB - PullRequest
       0

минимальный путь RGB

1 голос
/ 18 января 2020

Вам дан направленный график G = (V, E) взвешенные ребра . Узлы окрашены в красный, зеленый и синий цвета. Путь от s до v называется красочным, если он содержит красный зеленый и синий узел.

найдите кратчайший путь между s и каждым v , при условии, что путь должен быть цветным. Если есть более одного красочного пути, найдите минимум между ними.

Если такого пути нет, верните false.

Я не уверен, с чего начать. Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 18 января 2020

Когда вы идете по пути от s до v , go из одного «состояния» в другое, где «состояние» включает оба узла, на которых вы находитесь и , какие цвета узлов вы посетили в своем путешествии (7 возможных комбинаций). Ваше состояние определяет, какие пути от вашей текущей позиции являются допустимыми решениями.

Из исходного графика создайте (или представьте) график доступных состояний, где ребро представляет возможность перехода из одного состояния в другое. Этот граф будет иметь до 7 вершин для каждой из исходных вершин графа.

Теперь используйте алгоритм Дейкстры, чтобы найти кратчайший путь от (s, красный) (при условии, что s - красный) до ( V, красный + зеленый + синий)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...