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

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

Здравствуй, сообщество Codeforces!

Некоторое время назад, когда в университете зашла речь про систему непересекающихся множеств, у нас были некоторые люди с курса которые знали что это такое ( конечно, олимпиадники ), но на вопрос преподавателя "а где используется снм вне олимпиадных задач?" никто ответа так и не нашёл. Так вот, мне стало интересно, а действительно в каких НЕ олимпиадных задачах можно использовать снм, и на сколько её использование эффективно?

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

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

например, я однажды нашел реализацию СНМ в исходниках LLVM. https://github.com/llvm-mirror/llvm/search?q=IntEqClasses

можно ответить что-нибудь типа "используется для анализа потока управления в современных компиляторах" и привести ссылку на примеры.

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится
  1. In type theory and functional programming. More precisely for finding degrees of freedom instantiating the rules.
  2. In multi-core computations. In order to effectively construct multi-core spanning forest one should use DSU.
  3. Contour trees are widely used in Multi-Resolution computations. To construct contour trees effectively one should use DSU.
  4. It also widely used in self-adjusting trees.(For example : adjusting-heaps).
  5. In order to maintain the condensation of the graph we also need to use DSU. Which is also widely used in software engineering.

Isn't this enough? I am pretty sure there are other fields these are just from top of my head.

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

Наверное, во многих задачах где приходится работать с классами эквивалентности.

Например, в VK Cup 2015 — Уайлд-кард раунд 2 было оговорено следующее "Мы постараемся подготовить тестовые данные так, чтобы факты списывания были достаточно очевидны человеку, а отношение списывания было транзитивным". Поэтому мне собирать результат с помощью СНМ было очень удобно.

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

еще один пример http://habrahabr.ru/post/81279/

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Оу, даже так! Спасибо!

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Когда я проходил практику в лаборатории компьютерной графики, мы брали изображение, бинаризовали его, а потом искали на нем компоненты связности, используя СНМ. В итоге получилось очень даже неплохо и оказалось, что все это несложно распараллелить.

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится -8 Проголосовать: не нравится

У меня тема дипломки связана с использованием суфмассива и СНМ в LZ77-кодировании со скользящим окном. Постараюсь сделать пост про это в конце мая.

К сожалению, программист я посредственный, поэтому реализация GZIP-совместимого упаковщика у меня получилась, скажем так, не очень производительная.

P.S. Английская статья в Википедии намного более понятная, чем русская.

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

Прочитайте на этом сайте http://e-maxx.ru/algo/dsu