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

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

Вероятно, кому-то это будет интересно...

Московская командная олимпиада школьников по программированию состоится 14 октября. Олимпиада является отбором на ВКОШП. Регистрация команд (и заочный отборочный этап) будут проходить до 8 октября.

Сайт олимпиады, где опубликована вся информация и открыта регистрация:

http://olympiads.ru/moscow

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

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

Как решается задача B (Лига А) быстрее, чем за N log N?

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

    В задаче требовалось, фактически, посчитать чётность перестановки. Что такое чётность перестановки? Это чётность N - K, где N — количество элементов в ней, а K — количество циклов. А на циклы разбить перестановку можно за O(N).

    Альтернативное решение: идём по перестановке и если видим элемент не на своём месте, то свапаем его с элементом, стоящим на его месте. Считаем количество сделанных свапов. Фактически это сортировка за O(N) обменов.