TGViewer
Боря дорешивает Боря дорешивает @bminaiev_upsolving · 556 subscribers
Post #8 675
GP of Nizhny Novgorod. C.

https://contest.ucup.ac/contest/4126/problem/20250

Дан полный граф на 10^5 вершин, в нем каким-то странным неявным образом заданы стоимости ребер. Нужно найти минимальный остов.

Впервые в жизни пригодился алгоритм Борувки! Он работает следующем образом. Вначале все вершины поместим в отдельные компоненты. Пока компонент больше одной, для каждой найдем минимальное ребро в другую, а потом добавим все такие ребра. Идея в том, что всего таких итераций будет логарифм. Поэтому, если для каждой вершины уметь быстро находить ближайшую не из текущей компоненты, то итоговая сложность алгоритма получится O(n * logn * быстро).

За быстро в данном случае обозначает, что мы будет хранить дерево отрезков, где в каждом узле будем хранить два минимальных расстояния (до двух различных компонент). Тогда, чтобы найти минимальное ребро от вершины v в другую компоненту, посмотрим на минимум на всем массиве, и возьмем тот из двух элементов, который не равен текущей компоненте.
  • 🔥 8
  • ❤ 2
  • 💩 1
More from @bminaiev_upsolving
  1. Oct 12, 2026Post #17
  2. Oct 4, 2026Grand Prix of EPS. H. https://contest.ucup.ac/contest/4207/problem/21380 Если убрать все д…
  3. Sep 30, 202647/100. Чтобы в предыдущей задаче посчитать ответ быстрее чем за квадрат надо сделать два…
  4. Sep 30, 2026Оказывается n-е число Каталана можно считать не только как C(2 * n, n) / (n + 1), но и как…
  5. Sep 30, 202646.5/100 https://codeforces.com/contest/2268/problem/E После скучной части про комбинатори…
  6. Sep 28, 2026Вообще прикольный скилл смотреть на perf report и уметь ускорять код в 10 раз чисто механи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →