Компоненты связности: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) Нет описания правки |
Ctrlalt (обсуждение | вклад) Нет описания правки |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
== TLDR == | |||
<youtube width="300" height="180">rZkauRhHKGo</youtube> | |||
<youtube width="300" height="180">waXBVBKdV1s</youtube> | |||
void dfs(int v, int | |||
== Код == | |||
for (int | void dfs(vector<vector<int>> &graph, int v, vector<int> &visited, int component) { | ||
if (! | visited[v] = component; | ||
dfs( | for (int to : graph[v]) | ||
if (!visited[to]) | |||
dfs(graph, to, visited, component); | |||
} | } | ||
int componentCount = 0; | |||
for (int v = 0; v < graph.size(); v++) | |||
if (!visited[v]) | |||
for (int | dfs(graph, v, visited, ++componentCount); | ||
if (! | |||
dfs( | |||
== Ссылки на задачи == | == Ссылки на задачи == | ||
* [http://acmp.ru/?main=task&id_task=215 ACMP #215 — Водостоки] | * [http://acmp.ru/?main=task&id_task=215 ACMP #215 — Водостоки] | ||
* [http://acmp.ru/?main=task&id_task=432 ACMP #432 — Грядки] | * [http://acmp.ru/?main=task&id_task=432 ACMP #432 — Грядки] | ||
* [http://codeforces.ru/gym/100082/problem/B Codeforces #100082.B — Компоненты связности 2] | |||
== Ссылки == | == Ссылки == | ||
* [http://e-maxx.ru/algo/connected_components e-maxx.ru — Поиск компонент связности] | * [http://e-maxx.ru/algo/connected_components e-maxx.ru — Поиск компонент связности] | ||
* [http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B0_%D0%B2_%D0%B3%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D1%83_%D0%B4%D0%BB%D1%8F_%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8 neerc.ifmo.ru/wiki — Использование обхода в глубину для проверки связности] | * [http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B0_%D0%B2_%D0%B3%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D1%83_%D0%B4%D0%BB%D1%8F_%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8 neerc.ifmo.ru/wiki — Использование обхода в глубину для проверки связности] | ||
* [http://brestprog.by/topics/connectivity/ brestprog — Поиск компонент связности] | |||
* [http://algorithmica.org/tg/dfs algorithmica.org — Графы. Поиск в глубину] | |||
* [http://informatics.mccme.ru/course/view.php?id=6 informatics.mccme.ru — Курс «Алгоритмы на графах» — часть 2] | * [http://informatics.mccme.ru/course/view.php?id=6 informatics.mccme.ru — Курс «Алгоритмы на графах» — часть 2] | ||
* [http://ejudge.btty.su/bmstu/addon/docs/articles/moscow2006-dfs.pdf Лахно А | * [http://github.com/petr-kalinin/progtexts/releases/download/v2014.11.01/04_dfs.pdf Калинин П. Поиск в глубину] | ||
* [http://ejudge.btty.su/bmstu/addon/docs/articles/moscow2006-dfs.pdf Лахно А. Поиск в глубину и его применение] | |||
* [http://algs4.cs.princeton.edu/lectures/41UndirectedGraphs.pdf algs4.cs.princeton.edu/lectures — 4.1 Undirected Graphs] | * [http://algs4.cs.princeton.edu/lectures/41UndirectedGraphs.pdf algs4.cs.princeton.edu/lectures — 4.1 Undirected Graphs] | ||
* [http://visualgo.net/dfsbfs.html VisuAlgo — Graph Traversal] | * [http://visualgo.net/dfsbfs.html VisuAlgo — Graph Traversal] | ||
[[Category:Поиск в глубину и его приложения]] | [[Category:Поиск в глубину и его приложения]] |
Текущая версия от 15:14, 24 мая 2023
TLDR
Код
void dfs(vector<vector<int>> &graph, int v, vector<int> &visited, int component) { visited[v] = component; for (int to : graph[v]) if (!visited[to]) dfs(graph, to, visited, component); } int componentCount = 0; for (int v = 0; v < graph.size(); v++) if (!visited[v]) dfs(graph, v, visited, ++componentCount);
Ссылки на задачи
Ссылки
- e-maxx.ru — Поиск компонент связности
- neerc.ifmo.ru/wiki — Использование обхода в глубину для проверки связности
- brestprog — Поиск компонент связности
- algorithmica.org — Графы. Поиск в глубину
- informatics.mccme.ru — Курс «Алгоритмы на графах» — часть 2
- Калинин П. Поиск в глубину
- Лахно А. Поиск в глубину и его применение
- algs4.cs.princeton.edu/lectures — 4.1 Undirected Graphs
- VisuAlgo — Graph Traversal