Пожалуйста, прочтите новое правило об ограничении использования AI-инструментов. ×

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

Автор Dword, история, 6 лет назад, По-русски

Приветствую всех. Хотел бы узнать, как решить одну задачу (уже не помню откуда). Дан неориентированный 0-1 граф с n вершинами и m ребрами и число k. Необходимо найти остовное дерево с суммарным весом ровно k (или сообщить, что такого не существует). Ограничения: 1 <= n, k <= 10^5, 1 <= m <= 2 * 10^5. Время 2 сек, память 256 Мб. У кого какие идеи?

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

»
6 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Ответ существует если вес_мин_остова <= k <= вес_макс_остова. Алгоритм следующий: находим мин остов; оставляем лишь ребра веса 1 из него; добавляем произвольные ребра веса 1, которые не образуют циклов, пока их общее количество не станет k; добавляем оставшиеся ребра веса 0.

»
6 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Помню была такая задача в отборочных в летнюю школу Иннополиса