Блог пользователя nicky_ua

Автор nicky_ua, 11 лет назад, По-русски

Добрый день!

Как решать такую задачу Сумма ? Я думал как-то при помощи DSU, но не придумал как пересчитывать сумму при объединении множеств.

P.S. 472D - Уроки дизайна задач: обратные задачи в этой задаче сказано, что посчитать расстояния между всеми парами вершин в дереве это очень просто. Можете рассказать как? Дейкстра(и другие аналоги) же от каждой вершины по времени не зайдет

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Каждое ребро нужно посчитать столько раз, на скольких путях оно лежит. Дальше понятно?)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Для каждого ребра посчитаем количество путей проходящих через это ребро. Оно равно произведению количества вершин по разные стороны от этого ребра. Т.е. ответ сумма длин ребер на количество путей проходящих через него.

»
11 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится

Рекомендую также решить такую смежную задачу:

Дано дерево, для каждой вершины определить сумму длин путей, выходящих из неё.

Задача