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

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

Приглашаю всех желающих принять участие в моем первом контесте. Он будет проведен сегодня в 19:00(мск) на базе Codeforces тренировок.

Этот контест - часть эпической серии "Тренировки Самарского Международного Аэрокосмического Лицея", с которой некоторые из вас уже успели познакомиться. Проведен он был 12 ноября прошлого года.
Если dalex выложил свои два контеста просто в режиме тренировки, я хочу испытать на своем контесте возможности Codeforces тренировок для проведения соревнований.

Контест довольно легкий, наиболее интересен он будет, пожалуй, участникам второго дивизиона. Но если к нам заглянут красно-желтые участники и решат все пять задач за полчаса, я буду только очень рад =)

P.S. В для ввода/вывода будут использоваться файлы input.txt и output.txt - если вы получаете вердикт "решение зависло на первом тесте", значит вы забыли об этом.
Условия будут доступны в виде pdf файла.
Регистрация уже открыта.

UPD: Меня тут спросили, по каким правилам будет проводиться контест. Напоминаю: пока что тренировки поддерживают только ACM контесты.

UPD2: Если вдруг кто-то опоздал к началу, но хочет поучаствовать - знайте, что регистрация НЕ закрывается с началом тренировки.

UPD3: Тренировка была отложена на полчаса. Начало в 19:30.

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

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Спасибо за тренировку!
»
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
"тренировка №3" в планах?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Да, под нее даже уже была сделана скрытая заготовка, чтобы не нарушать порядок. Просто её автор - craus - слишком занят сессией, поэтому я решил сначала выложить свою.
»
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Мне кажется о треннировках стои объявлять немного заранее. Поскольку нет рассылки и они явно не висят в списке соревнований (тот что справа на стартовой) - можно легко незаметить
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    Да мы ее совсем недавно сюда залили. Заранее объявлять когда? За день - нет, завтра контест, а дольше ждать не хочется. Решили сделать сегодня в стандартное время.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    тренировка же не на рейтинг. захотел - участвуешь сейчас, захотел - потом виртуально.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится +30 Проголосовать: не нравится
      Да, но когда в реальном режиме учавствуешь немного интереснее. В режиме виртуального контеста  (индивидуального) трудно себя заставить до конца почувствовать дух соревнования

      То была не претензия - пожелание
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Кто захочит будет писать, и без напоминаний.
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

      Я говорил не про напоминания, а про возможность узнать о ней впринипе

»
13 лет назад, # |
  Проголосовать: нравится +21 Проголосовать: не нравится
Эх, ненавижу переносы контестов, но вынужден сейчас сам сделать это. Тренировка отложена на полчаса.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Это хорошо бы и в главном посте написать.
»
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
а бывают разборы на тренировки? 
пыталась решать одну из тренировок, любопытно узнать как решать)
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Ну, если уж кому-то нужно, я создам позже тему, где можно будет задать вопросы по нашим тренировкам.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Кажется, можно выложить разборы на ту же страницу, откуда качаются условия. Потом попробовать надо.
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Просто будут сразу же качать разборы, а это убирает чувство соревнования. 
        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Вот это плохо, да. Но точно так же все будут сразу же читать темы с разборами.
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            поэтому было бы неплохо как-нибудь закрывать темы или ссылки на разбор для тех, кто еще не принимал участие в вирт соревновании.
            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Да, такая идея уже много раз звучала. Выглядит она неплохо.
            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Так и сделаем. Если такого нет в трекере, то зафайлити кто-нибудь.
              • »
                »
                »
                »
                »
                »
                »
                »
                13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Может быть стоит участникам-призракам ставить время работы (по задаче) бликое к ТЛ? Так будет проще искать быстрые решения, когда участников станет много, прейдется несколько страниц пролистывать впустую
»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится
"I'm too stupid to solve this problems"
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А так и должно быть, что задачи нужно скачивать pdf файлом? Не открывается как обычно.
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Thank you! :-)
»
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Please provide it an English text a.s.a.p! Thanks a lot!
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как решать B, D, E?
  • »
    »
    13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +2 Проголосовать: не нравится

    Давайте я под спойлер скрою, мало ли.

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

    Если разбора всё же не будет: D - игра на графе. У нас есть функция с тремя агрументами: вертикаль, горизонталь и тот, кто сейчас ходит. Она возвращает 1, если выиграет Пётр, и -1 - если Гена. У участника 2 варианта хода. Пытаемся туда сходить, вызывая функцию от новой клетки и следующего игрока, анализируем результаты ходов (если сходить в клетку нельзя, договоримся, что соответствующий результат будет равен 0). Если сейчас ходил Гена - ищем минимум из двух. Если он равен -1, возвращаем -1, иначе 1. Для Петра - максимум. Если он равен 1, то возвращаем 1, иначе -1. Чтобы не считать от одной клетки несколько раз, сделаем нашу функцию запоминающей: заведём массив, в котором будем хранить её результаты для каждого набора аргументов.

    Итого: у нас граф из O(n*n) вершин, из каждой максимум 2 перехода, глубина рекурсии O(n). Так как расчёт для каждой вершины производится однажды, получам время O(n*n).

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кто знает 5-ый тест в Е?
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Спасибо большое, понравилась тренировка, да и для меня как раз вовремя.

Задача E на Тимусе точно есть, решал даже, но тем не менее тут сходу не написал. Хочется узнать, как решить B без всяких матриц поворота, и можно ли вообще так сделать. Но это, наверное, в другой теме.

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

    в B затолкал такое решение:

    научимся искать некоторую точку, для которой известны расстояния до других 3-х точек. Дальше из вики известно, что икосаэдр можно вписать в сферу с определенным радиусом R. Найдем точку, отстоящую от данных 3-х на такой радиус - это центр сферы. Теперь храним множество точек, принадлежащих икосаэдру. Пока в нем меньше 12 элементов, перебираем пары точек и находим точку, находящуюся на расстоянии R от центра и на расстоянии a до обеих точек.(а - длина стороны треугольника), добавляем ее в множество.

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +18 Проголосовать: не нравится
    в B надо просто взять точки из семпла и аффинными преобразованиями передвинуть так, чтобы 3 точки в плоскости xOy совпали с 3 точками на входе. ну и еще аккуратно отмасштабировать по оси z.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Спасибо. Да, дельно. Забыл это и пытался вывести преобразования точек в время тренировки, но не получилось. Правда, использовал какие-то неправильные системы уравнений по каждой координате отдельно.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Кстати, сам думал разбить икосаэдр на два треугольника и шестиугольник, лежащие в параллельных плоскостях, причём расстояния между плоскостями известны. Разбиваем каждую из этих фигур на вектора. Каждый вектор будет смещён и повёрнут относительного соответствующего в примере из условия. Находим величину смещения и угол поворота, смещаем и поворачиваем все вектора. Вот. Ну, для меня ещё надо было почеркаться в тетрадочке.
»
13 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Hohol почему-то отказывается это писать, поэтому напишу я.

Поздравляем победителей нашей тренировки, RAD, который быстрее всех решил все 5 задач и поделивших второе место niyaznigmatul и Ripatti.

Отдельный респект занявшему 4 место Quercitron. Мы очень надеемся увидеть его лицо, когда он посмотрит решения победителей :)
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Как-то тяжко с просмотром решений, кстати. Вот один раз только получилось посмотреть не своё решение. У кого-нибудь есть похожая проблема? Ubuntu 10.10, Opera 11.51.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У меня не смотрятся решения только по B, остальные свободно
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У меня смотрятся только решения задач которые я сдал. По идеи так и должно быть.
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        У меня однажды просмотрелось решение Артёма Рахова по B, но я подумал, что ещё раз смогу его увидеть и закрыл. Успел заметить, что оно короткое.
»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +2 Проголосовать: не нравится

А задаче Марсоход прочитал так :

"Он способен принимать только одну команду в час, причем лишь одну из следующих команд: ехать на юг или ехать на восток. После принятия команды марсоход движется в западном (в оригинале "в заданном") направлении с постоянной скоростью"

Долго не мог понять в чем же дело

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

А Е-шку можно было сдать за n^3, после кучи оптимизаций решение за куб всё-таки прошло :)

P.S.: А ещё С-шку можно было сдать БЕЗ длинной арифметики xD (unsigned long long + проверка на переполнение).

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Спасибо за контест. Задачи понравились, жаль не успел сдать B во время контеста :(
»
13 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
не дотерпел, за полчаса до контеста уснул) завтра витруально напишу, судя по комментам задачи хороши
»
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Это еще не доделанная или предусмотренная деталь, что почему то нельзя смотреть посылки других пользователей в Тренировках?Мне кажется это важно посмотреть, найти возможно какие то идеи сильных участников.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится
    Если ты здал решение, тогда ты можеш смотреть чужие решения. Кстати, очень хорошо придумали.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Действительно, не заметил. Спасибо
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
подскажите где ошибка в моих рассуждениях по задаче D?
пройдем по всему полю с юго-востока на северо-запад. если текущий сектор чист от камней и из него можно попасть хотя бы в один проигрышный сектор, то текущий сектор - выигрышный, иначе - проигрышный.
после заполнения формируем ответ по значению в секторе с координатами (2,2);
»
13 лет назад, # |
  Проголосовать: нравится -25 Проголосовать: не нравится

your english is very bad Hohol....