@Dobbi

Как правильно закодить раскраску графа в с++?

Заданы граф G=(V,E), где V — множество вершин; E — множество ребер, и положительное целое число K<=|V| , где |V| — мощность множества V. Раскрасить вершины графа K красками так, чтобы ни одно его ребро не имело соцветных концов. Если такая раскраска невозможна, выдать на экран соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение его вершин на экране.
  • Вопрос задан
  • 2872 просмотра
Пригласить эксперта
Ответы на вопрос 1
Mrrl
@Mrrl
Заводчик кардиганов
Рекурсией. Находите нераскрашенную вершину, у которой меньше всего вариантов раскраски, и красите её во все возможные цвета. После каждой покраски - рекурсивно вызываете эту же функцию. Если оказалось, что неиспользованных цветов столько же, сколько нераскрашенных вершин - красите каждую в отдельный цвет и возвращаете как решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы