Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Помогите, пожалуйста, с остовом минимального веса!
1 2
  21  Карелин Виталий Александрович, 26 марта 2009 г. 18:22:11
      Кстати, насколько я понимаю алгоритм Прима:
Строим граф последовательно, по одной добавляя ребра.
На каждом шаге находим ребра между всеми вершинами в графе и всеми вершинами не в графе. Выбираем минимальное и добавляем к графу. И так n-1 раз.
Все правильно?
Но минимальное ребро находится за i*(n-i) сравнений.... (i - количество ребер в графе, (n-i) - количество ребер не в графе)
Итого сравнений: 1*(n-1)+2*(n-2)+3*(n-3)+...+(n-2)*2+(n-1)*1 . Что-то не похоже на n^2...
Данная сумма при n=8000 дает ~85 миллиардов итераций. Многовато...
  22  SOVA xxx, 26 марта 2009 г. 18:22:09
      *O((N^2)/2 + N log N)
  23  SOVA xxx, 26 марта 2009 г. 18:19:41
      просто трудно решать задачу без условия:)
её можно решить(я могу решить) за O(N^2 + N log N)
  24  Карелин Виталий Александрович, 26 марта 2009 г. 18:12:28
      Если искать 'для каждой вершины вершину ближайшую к ней' то может получиться несвязный граф. И с циклами. Точки все нужно соединить в один граф. И, имхо, очевидно, что циклов быть не должно...
  25  SOVA xxx, 26 марта 2009 г. 17:39:47
      скажу чесна что впервые слышу про прима и краскала за куб...
и я прав:) щас открыл книгу алгоритм прима за O(N^2) но для ограничений видимо не подойдет:)
алгоритм Краскала за О(e log e) где е количество ребер
тока если я правильно понял задачу
то тут врядли они подойдут хотя мб и пойдут))
лучше прима используй или чето другое тк тебе не сам остов минимального вес нужен а дерево с минимальным максимальным листом
а вообщем если я опять же понял задачу то нужно всего найти для каждой вершины вершину ближайшую к ней тк я не вижу чтобы было сказано про дерево или отсутствие циклов:)
  26  Карелин Виталий Александрович, 26 марта 2009 г. 16:06:52
      Есть такая задача - есть N точек на плоскости. Их всех нужно соединить вместе, да так, что б максимальная длина ребра была как можно меньше. Как я понимаю - эта задача схожа с задачей нахождения остова минимального веса. Решается такая задача методами Краскела и Прима. Но у этих алгоритмов сложность O(n^3), а в одном месте на этой задаче ограничение N<=8000. И не пройдет никак. Какой тут еще может быть алгоритм? Подскажите, пожалуйста! А то я понятия не имею....
1 2

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru