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

Автор Egor, 14 лет назад, По-русски
По просьбам трудящихся
Очередной SRM пройдет 11 февраля в 5 утра по Москве
Я, по некоторым причинам, не приму в нем участия
Кстати, мне почему то перестали ходить письма от Codeforces про комменты и сообщения. Остальные вроде ходят. К чему бы это?
  • Проголосовать: нравится
  • +18
  • Проголосовать: не нравится

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Остальные это какие? :) Мне никаких уже давно не ходит...
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Остальные - это остальные письма, а не остальные письма от Codeforces ;)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Между началами SRMа и CFBRа 14 часов.
Интересно, реально ли будет в трезвом уме написать их оба. :-)
14 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

>Кстати, мне почему то перестали ходить письма от Codeforces про комменты и сообщения. >Остальные вроде ходят. К чему бы это?

Я тоже так думал, но оказывается письма отправлялись в спам :)

14 лет назад, # |
Rev. 2   Проголосовать: нравится -8 Проголосовать: не нравится
Никак не могу понять почему в DIV1 550 Example 1 ответ 2...
Тег 'z' не является же прямым потомком (strict descendant) тега 'x'...

UPD: Хм... Бродкаст такой бродкаст. Что же тогда not-strict descendant...
Нафэйлили они с 550й.

UPD2: Объясните пожалуйста, я правильно понимаю, что вообще
«strict descendant» - это прямой наследник, т.е. сын, а не внук?
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится -13 Проголосовать: не нравится
    - merged -
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    У меня к моменту broadcast уже была решеная задача с пониманием "сын", и я тоже не мог понять, почему во втором тесте два :о)

    Переписывал потом решение.

    Я тоже понимаю это как сын.

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Эм, а как в итоге ее нужно было понять?
    Все внутренние, без нее самой?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    думаю not-strict - включая сам тэг. Задача кстати баян.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Если баян, то почему тогда такие проблемы с ней? :o)
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну она была два года назад на соревновании в Саратове.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          А на каком соревновании если не секрет?
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Затруднюсь ответить как это называется.. Что-то вроде открытой студенческой олимпиады.
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Правильно ли я понимаю, что это соревнование не имело никакого отношения к ТопКодеру ?
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Да.
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Тогда это не очень красиво со стороны автора задачи.
                  • 14 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    кто автор раунда?
                    • 14 лет назад, # ^ |
                        Проголосовать: нравится 0 Проголосовать: не нравится
                      Это сборный контест из старых неиспользованных (ТопКодером) задач. В див-1 авторы misof, Mike Mirzayanov и stone.
                  • 14 лет назад, # ^ |
                    Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится
                    Автор теперь получит -20 к доверию?
                    Хотя, конечно, есть ещё вариант, что он сначала предложил её для TopCoder, вы сразу не взяли, вот автор и подумал, что не возьмёте вообще, и дал её на другом контесте после. Тогда только -10.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Не, ну я сразу тоже не догнал, но понял правильно, изучая сэмплы, ещё до бродкаста. Видимо, non-strict - это как раз есть дерево вместе с корнем. А деление на сын/дальнейшие потомки было бы direct/indirect.
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
      Ну да, я как раз хотел (в соответствии с тестом) увидеть в тексте задачи indirect вместо strict descendant.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
fail: отправил хард за 20 секунд до конца coding phase, сразу после конца нашел тупой баг (long->int)
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    а как ее надо было решать. Быстрее чем за O(min(K,R)) не придумал.....
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У меня решение за O(sqrt(r)*log(r)).
      Сначала сведем задачу формулой включения-исключения к следующей: посчитать для скольки i<x выполняется (k*i)%n<y
      (получится 4 запроса к такой подзадаче).

      Зафиксируем t = floor(sqrt(x)) и найдем множество A={(k*i)%n | i<x}.
      Т.к. (k*(j*t+i))%n=(k*j*t+i)%n, чтобы посчитать ответ для i из интервала [j*t, (j+1)*t) нужно посчитать сколько элементов есть в A в определенных интервалах (не более чем двух). Это можно сделать за O(log n) например бинарным поиском по отсортированному массиву.
      Таким образом можно посчитать ответ почти до x за O(x/t*log(n))=O(sqrt(x)*log(n)), за исключением хвоста длиной не более t. Его можно досчитать влоб за O(t)=O(sqrt(x)).
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А почему в арене в джаве отсутствуют методы higher и floor(а может и еще какие-то) у TreeSet'а?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Там есть tailSet и headSet, у них можно вызвать first() и last() чтобы получить аналог higher и floor из плюсов
14 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
Ненавижу, когда решение работает на chelendge из-за того что в нем несколько багов, которые компенсируют друг-друга....
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
я что-то плохо понимаю, что происходит с результатами.
может кто-нить объяснить?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Похоже, что они наконец-то стали правильными.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В тестах 550ки был не валидный тест (о чем было написанно в Broadcast). Поэтому сейчас делается повторное тестирование с валидными тестами. (скоро будут окончательные результаты SRM).
14 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Ура. Я наконец-то смог стать красным (3 года к этому шел).
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Мде.
   string q;
   q.erase( q.begin() );

Студия такое пропускает.
TC выдаёт:
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create


Бида.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Еще один аргумент в пользу дебага прямо в арене.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Просто надо было хотя бы один семпл тест запустить, обнаружить проблему, вставить 1 строчку проверки и поулчить верное решение.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Так всё же, правильно ли было применено в задаче «strict descendant»?
И если да, то какой этому русский эквивалент?
(Надо на будущее запомнить чтобы не было такого непонимания.)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Я бы перевел как строгий. Во всяком случае в отношении неравенств, строгий на английский вроде будет переводиться так.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Значит в условии задачи всё было верно...
      Ну хоть не зря встал в 3 утра - что-то новое узнал. :)
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
      - коммент ушел не туда -
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Блин... проспал таки.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Может кто-нибудь рассказать как решается DIV 1 550?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Распарсить дерево, а потом динамика DP(root,color_b,color_u,color_i)
    где root - корень поддерева, color_x - номер цвета, который назначен тэгу x откуда-то
    сверху. Ну и переходы делать по всем возможным тройкам цветов.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Наверное можно три раза запустить динамику DP(root, color) для разных типов тэгов.