Сумма расстояний до всех вершин дерева
Деревья
Сложная
Дано дерево из n вершин (0..n-1), n-1 рёбер edges. Для КАЖДОЙ вершины v верните сумму расстояний (в рёбрах) от v до всех остальных вершин дерева. Результат - массив длины n.
Наивно считать BFS от каждой вершины отдельно - O(n^2). Эффективный приём (rerooting): посчитайте ответ для одной вершины обычным обходом, а для остальных пересчитайте его через родителя за O(1) при переходе по ребру.
Сигнатура функции
sum_of_distances(n: int, edges: list[list[int]]) -> list[int]
Примеры
| Вход | Ожидаемый результат |
| [6, [[0, 1], [0, 2], [2, 3], [2, 4], [2, 5]]] | [8, 12, 6, 10, 10, 10] |
| [1, []] | [0] |
1решили
1пытались
100%успешность
Войдите, чтобы решить →