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

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

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

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

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

А можно будет его где-то написать завтра виртуально чуть позже?

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

    Завтра — нет. К сожалению, Тимус пока ещё не поддерживает виртуальные контесты. Позже скорее всего появится на Яндекс-тренировках. Возможно, где-то ещё.

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

      Может, стоит выложить на местные, кодфорсовские тренировки? Был бы очень благодарен.

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

      Если вам лениво самим добавить в тренировки — дайте нам тесты, добавим самостоятельно.

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

        Вообще, было бы очень круто пособирать как можно больше четвертьфиналов NEERC здесь, на тренировках.

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

Понравилось, что задачи идейные.

В очередной раз не понравились графоманские сказки. Я понимаю, что это такая фишка уральских контестов, но каждый раз эти условия вызывают неприятные эмоции — их очень сложно понимать.

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

    Я пишу такие сказки, на которых было бы интересно играть мне самому. Во многом из-за подобных сказок мне было интересно решать задачи ещё в те времена, когда я ещё был школьником и только начинал путь ACM'щика. Ко мне после контеста на фуршете подошла одна из далеко не топовых команд и начала интересоваться, всегда ли у нас такие сюжетные сказки и где можно ещё порешать подобные задачи. Им понравилось.

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

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

      Спасибо за ответ. Приношу свои извинения, если я обидел авторов задач своим резким высказыванием. Как я уже сказал, идеи задач мне понравились, а такая обертка, наверное, действительно нужна для привлечения новых участников.

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

Спасибо за непонятное условие задачи С.

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

Когда задачи будут добавлены в архив?

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

Интересно, хоть в одном стандарте C++ прописано #define or ||

Обидно ловить из-за этого СЕ на 4:58.

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

    На gcc тоже так.

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

      Здесь написано, что они используют компилятор Microsoft C++ 2010. В нём тоже присутствует ностальгия по безвременно ушедшему Pascal?

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

        По стандартам С++ 2003 и 2011 годов or — зарезервированное слово.

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

          Локальная студия отлично скопмилировала, ещё кстати не ругается если нет const перед ссылкой в перегрузке операторов сравнения, есть какой-то флаг врубающий жесткое следование стандарту?

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

            У меня 2012 студия тоже нормально относится к "or", про другие версии не знаю. Компиляторы не очень уж и жестко следуют стандарту — могут что-то не поддерживать, что-то добавлять свое. Компилятору можно указать, какой версии стандарта следовать (в той мере, в какой он поддерживается данным компилятором), но сказать не следовать стандарту, насколько я знаю, нельзя. И было бы странно, если бы это было возможно.

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

              Ну и вопрос был: врубить(ака включить) следование стандарту

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

    Так если в 4:58, то еще была минута на #define or sadgaijdhjads и ресабмит:) Не успели?:(

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

      Та я а я сделал автозамену, а оно заменили ещё ив циклах фор, пока вернул и поставил галку "заменять слова целиком", уже время вышло. Но оно всё равно ВАшило, я не учел, что перемещение за границей не считается за ход.

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

        Match whole words надо ставить. У меня при замене int на long long часто получалось заменить printf на prlong longf.

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

Что за 22-ой тест в задаче D?

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

Что в 6 тесте в С?

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

    У нас был WA#5. Но мне помог следующий тест:

    +-+-+-+ 
    |2. . . 
    +-+-+-+ 
    .1| | | 
    +-+-+-+
    

    Ответ 4.

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

      не, у меня правильно выдает=(

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

        Этот тест можно еще чуть чуть усложнить

        +-+-+-+.+ 
        |2. . | |
        +-+-+.+.+
        .1| | | |
        +-+-+.+.|
        

        Ответ 8

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

          Спасибо) т.е. можно заходить внутрь после того как мы вышли на свободу?

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

            ну по условию это не запрещается :-)

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

          Спасибо! У меня была такая же фигня)) Хороший тест

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

    Кстати, кто расскажет как это грамотно писать? А то я наговнокодил 250 строк, и сейчас час пытался уложить в ТЛ с явным построением графа. В итоге зашло только с генерацией переходов в самом бфсе, но код ужасен)

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

      Я не строил граф явно. Изначально добавим по одной строке и одному столбцу вокруг нашей таблицы, чтобы не рассматривать случаев с выходом за поле. Теперь делаем бфс, в котором состояние — это пара клеток, только чтобы их можно было нормально хранить, кодируем как пара (клетка, направление на соседнюю). Каждый раз просто двигаем либо первую, либо вторую клетку. Только когда мы делаем движение по границе, то ребро у нас стоимости 0, а когда внутри таблицы, то 1. В общем, все.

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

        Примерно так и делал, а как в бфсе учесть рёбра 0 стоимости? Не с приоритетами же очередь юзать?

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

          Ну просто вместо queue поддерживаем deque. Если перешли по ребру веса 0, то добавляем в начало, иначе — в конец.

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

        Можно даже не кодировать, а в set складывать посещённые.

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

Залил контест как местную тренировку. За полную адекватность русских условий не ручаюсь, ограничения везде проставлены актуальные. Контест мягко говоря непростой, потому не сильно рекомендуется к отрешиванию участниками ниже жёлтых.

Если в системе заливки ничего не поменяется к лучшему, то боюсь, это будет последним уральским контестом, данным местной тренировкой.

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

    А можно узнать 21й тест в задаче Е? А то 2 моих совершенно разных решения на нем падают

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

      На нём много кто падает. Но там маленький тест 4*4, в чем его подвох — я уже не помню.

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

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

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

А кто такие Сорен и Альба?

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

    Все сказки придуманы с нуля, никакой матчасти за ними не лежит.

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

    По всей вероятности, это Souren Araya и Cornelius Alba.

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

      Такое тоже есть. Имена придумывать — самое сложное, потому позаимствовал их из Kara no Kyoukai. Кроме общих имен и того, что они маги, вроде больше ничего не брал.

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

Будет ли на этих задачах проводиться GP of Yekaterinburg Открытого Кубка?

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

Интересная была задача В. Я уже через час после начала соревнования написал код, но всё не мог пройти 22й тест. Как впоследствии выяснилось, это случилось совсем не из-за неправильного понимания условия и даже не из-за большой численной погрешности (в отчаянии я даже сделал все вычисления в целых числах!!!). А всё только из-за неверного понимания кинематики (скорость в туннеле не может быть отрицательной)))) Это очень глупая ошибка, и меня повеселило, что эту же ошибку допустили все или почти все (во всяком случае, никто за контест эту задачу не решил). А ларчик просто открывался... =)

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

Вопрос по задаче D: какие точки надо считать критическими? Мы добавили все попарные пересечения окружностей и прямых: WA18. Добавили для каждой окружности 360 точек на ней: WA36.

P.S.: Конечно мы все итерировали 2 раза.

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

    Я брал середины отрезков и пересечения окружностей радиуса r и 2r (все комбинации). Я уже не очень помню задачу, но вроде бы можно не брать 2r.

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

      Похоже у нас точек хватает. У авторов какой-то странный (возможно неправильный :-() чекер.