Изменения

Перейти к: навигация, поиск
Двупроходный алгоритм
'''paint(<tex>v</tex>, цвет)''':
<tex>colors([v)]\leftarrow</tex> цвет
для всех вершин <tex>u</tex>, смежных <tex>v</tex>:
если <tex>u</tex> не покрашена:
если <tex>ret([u) ] = enter([u)]</tex>:
увеличиваем максимальный цвет
'''paint'''(<tex>paint(u</tex>, максимальный цвет<tex>)</tex>
иначе:
'''paint'''(<tex>paint(u</tex>, цвет<tex>)</tex>
...
обнуляем массив <tex>colors</tex>
максимальный цвет <tex>\leftarrow0</tex> 0
для всех вершин <tex>v</tex> графа:
если <tex>colors([v)] = 0</tex> = 0:
увеличиваем максимальный цвет
'''paint'''(<tex>paint(v</tex>, максимальный цвет<tex>)</tex>'''
Вершины каждой из компонент реберной двусвязности окажутся окрашенными в свой цвет.
Анонимный участник

Навигация