Задача о динамической связности — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(См. также)
Строка 6: Строка 6:
 
}}
 
}}
  
 +
== Динамическая связность в лесах ==
 +
Если задача построена так, что в графе нет и не может быть циклов, то её можно решить при помощи [[Деревья Эйлерова обхода|деревьев эйлерова обхода]]. Нужно только... [[Dynamic connectivity|читать продолжение в источнике]].
 +
 +
Время работы для упрощённой задачи {{---}} <tex>O(\log n)</tex>.
 +
== Обобщение задачи о динамической связности ==
 +
А это уже сложнее)0)
 +
=== Псевдокод ===
 +
<!--== Алгоритм ==
 +
=== Время работы === // i think i'll tell it
 +
== Частные случаи == // hahaha there is only one specific kind))0)
 +
=== Деревья === //yes
 +
=== Планарные графы === //da xz chtobi o nih govorit' ischo... -->
 +
 +
<!--
 
== Алгоритм ==
 
== Алгоритм ==
  
Строка 38: Строка 52:
  
 
Вместо описанного способа откатывания состояния СНМ можно использовать [[Персистентные структуры данных|персистентный]] СНМ, но этот вариант сложнее и имеет меньшую эффективность.  
 
Вместо описанного способа откатывания состояния СНМ можно использовать [[Персистентные структуры данных|персистентный]] СНМ, но этот вариант сложнее и имеет меньшую эффективность.  
<!-- если бы ещё псевдокод и что-то там ещё, я забыла -->
+
<!- если бы ещё псевдокод и что-то там ещё, я забыла ->
  
 
=== Частные случаи ===
 
=== Частные случаи ===
Строка 44: Строка 58:
 
# Деревья. Для таких графов задачу можно решать при помощи [[Деревья Эйлерова обхода|деревьев эйлерова обхода]]. Операции добавления и удаления рёбер и проверка на существование пути между вершинами работают за <tex>O(\log n)</tex>.
 
# Деревья. Для таких графов задачу можно решать при помощи [[Деревья Эйлерова обхода|деревьев эйлерова обхода]]. Операции добавления и удаления рёбер и проверка на существование пути между вершинами работают за <tex>O(\log n)</tex>.
 
# Планарные графы. D. Eppstein доказал, что для планарных графов мы также можем выполнять запросы за <tex>O(\log n)</tex>.
 
# Планарные графы. D. Eppstein доказал, что для планарных графов мы также можем выполнять запросы за <tex>O(\log n)</tex>.
 +
-->
  
 
== См. также ==
 
== См. также ==
* [[СНМ (реализация с помощью леса корневых деревьев)|Система непересекающихся множеств]]
+
* [[Деревья Эйлерова обхода|Деревья эйлерова обхода]]
 
* [[Задача о динамической связности оффлайн]]
 
* [[Задача о динамической связности оффлайн]]
  

Версия 18:10, 7 января 2018

Задача:
Есть неориентированный граф из [math]n[/math] вершин, изначально не содержащий рёбер. Требуется обработать [math]m[/math] запросов трёх типов:
  • добавить ребро между вершинами [math]u[/math] и [math]v[/math],
  • удалить ребро между вершинами [math]u[/math] и [math]v[/math],
  • проверить, лежат ли вершины [math]u[/math] и [math]v[/math] в одной компоненте связности.


Динамическая связность в лесах

Если задача построена так, что в графе нет и не может быть циклов, то её можно решить при помощи деревьев эйлерова обхода. Нужно только... читать продолжение в источнике.

Время работы для упрощённой задачи — [math]O(\log n)[/math].

Обобщение задачи о динамической связности

А это уже сложнее)0)

Псевдокод

См. также

Источники информации