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

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

Этап Открытого Кубка 6 мая пройдёт на задачах Чемпионата Урала 2012 (то есть по сути, это перенесённый с 30 апреля Гран-При Урала).

В связи с этим командам, участвовавшим в Чемпионате Урала, в зачёт Кубка пойдёт показанный на Чемпионате Урала результат.

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

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

Если кто-нибудь знает актуальный (неактуальный у меня и так есть :) ) телефон Олега — скиньте в личку плиз

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

А почему нельзя посмотреть текущий монитор? (div 2)

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

    За что минусуете? На момент написания сообщения монитор для див. 2 был действительно недоступен.

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

Уже вроде можно. Как решать M?

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

    Заметим, что длина ответа не превосходит 2k...

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

      Как это заметить ?

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

        Не знаю, спроси у Hohol

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

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

        Заметим, что максимальный ответ, меньший единицы, достигается отрезком вида 11111011111 (k-1 единиц 0 k-1 единиц). Любой отрезок с большим отношением числа единиц к длине обязан содержать k подряд идущих единиц, в таком случае просто возьмем их и получим ответ 1. Каким-то образом это связано с тем, что длина ответа всегда не превосходит 2*k-1.

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

          Доказать можно так:
          Пусть есть ответ длины 2*L. Тогда разделим его на 2 половинки длины L. В левой x единиц, в правой — y. Для удобства будем считать, что x>=y. Частота в левой половинке x/L, в целом куске (x+y)/2*L<=x/L.

          Теперь, если длина ответа 2*L+1. x — сумма первых L элементов, y — сумма последних L элементов, опять считаем, что x>=y. Если по середине стоит 0, то аналогично четному случаю приходим к ответу длины L. Если по середине единица, тогда частота в целом куске (x+y+1)/(2*L+1), частота в левом куске длины L+1 (x+1)/(L+1).
          Покажем, что (x+1)/(L+1)>=(x+y+1)/(2*L+1). Преобразуя получаем x+1>=y+y/L. Неравенство верное, причем в равенство оно обращается только если y=L, т.е. когда ответ не содержит нулей, в этом случае мы можем взять в качестве ответа любые L единиц, в противном случае ответ улучшится, значит ответ не максимален. Таким образом, всегда можно ответ длины L уменьшить до L/2 (округленное вниз).

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

Отправка банана в прошлое с помощью микроволновки и визуальная новелла "Песнь Аси" порадовали ^_^
В F правильно каждый раз выбирать самый короткий путь и ходить по нему? Если нет, то как ее решать?

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

    Мы решали динамикой: вершина и бул. Бул означает пришли ли мы в вершину суперпрыжком или обычным. Переходы такие сначала посчитаем сумму по всем сыновьям если мы прыгнем в них обычным образом плюс сумма по всем сыновьям количество личстьев в их поддереве. Теперь перебираем сына в которого пойдем последним вычитаем из суммы значение обычного прыжка и прибавляем кое-что еще (значение динамики в сыне с булом единицей плюс количество листьев если у нас бул равен 0).

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

    Сюда ещё можно добавить и референсы к Макроссу.

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

Кто-нибудь знает, из-за чего ловился WA 51 в А?

И вообще, правильно ли там жадно набирать очередь двумя указателями (отсортируем исходный массив, дальше meet-in-the-middle)?

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

    Я отсортировал массив и шел по нему слева направо. Для каждого невыбранного a[i] необходимо взять в пару наименьший a[j], такой, что a[i]+a[j]>s (я это поддерживал в мапе). Если такого a[j] нет, то плохих пар больше вообще не будет.

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

      Хмм, а meet-in-the-middle не то же самое сделает?

      Я могу показать код, возможно, где-то просто ошибка в реализации.

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

        Не понимаю, что такое meet-in-the-middle в этом контексте. Но мне известно, что нельзя решать так же, но с идти конца массива, это WA (хотя пока не понимаю, почему).

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

          http://pastebin.com/eevsTWeb

          Всё-таки я ошибку так и не нашёл. Ни в алгоритме, ни в реализации.

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

          Очень просто же, тест: 5 7 5 3 1 1 4

          У тебя получается: 3 5 1 1 4 (ответ 3), а правильно: 3 5 4 1 1 (ответ 4)

          А, ты по другому шёл. Ну мы пары формировали с конца и числа, не вошедшие в пары, выводили с конца. Если сначала остаток выводить, то вот тест сверху валит.

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

Одни из самых поганых условий, которые я когда-либо видел. Невозможно ничего понять. Громкое ФИ авторам.

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

    Я так и не осилил ни одного (пытался прочитать С и F — никакого толку)

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

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

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

      Я читал условия на русском. У меня были некоторые трудности с пониманием задач C и I. Пришлось перечитывать несколько раз, сопоставляя с сэмплом.

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

      Проблем с неправильным пониманием не было. Были проблемы с абсолютным непониманием условия. Например в задаче С даже после двух полных прочтений условия непонятно было что вообще сделать нужно. Все условия были излишне замусорены легендами, которые было очень трудно отделить от самих условий. P.S. Чуть не забыл к таким условиям прилагались максимально капитанские семплы.

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

        Плюс за замечание о сэмплах. Присоединяюсь.

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

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

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

      Кроме выше сказанного в ряде задач какие-то моменты были написаны в разделе Input/Output. Я все-таки считаю, что этот раздел неспроста часто называется "формат входных-выходных данных", что бы писать там именно формат, а не ключевые моменты условия.

      И в следующий раз пусть кто-то не имеющий отношения к подготовке попытается прочесть и сказать вам, вообще хоть что-то понятно или нет. Я не знаю, как у вас, но в саратовских соревнованиях часто пропагандируется философия "если условие не ясно с первого прочтения кроме особых моментов, то это плохое условие".

      Кроме того, если красивая сказочка засталяет участников очень сильно напрягаться при прочтении, то нафиг такую сказку?

      P.S. ладно мы, у нас была просто тренировка, но мне жалко те команды, для которых это было официальное соревнование.

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

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

        Насчёт философии — да, у нас она немного другая. Если участник не умеет отделять зёрна от плевел, а сказку от сути — это проблема участника. И поэтому у нас были и есть большие литературные сказки, в которых вся суть может быть размазана по тексту. И чтение таких сказок — это тоже своеобразная тренировка.

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

          s/литературные/графоманские/

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

          тренировка к чему — вылету на Марс? :)

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

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

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

            Чемпионаты Урала всегда были достаточно неформатными соревнованиями. Бывали и задачи, где не было условия, но был чёрный ящик, который нужно было воспроизвести. Были задачи с нечёткой формулировкой. И на любое отклонение от стандарта всегда находятся недовольные, в какую бы сторону это отклонение не было. И находятся те, кому эти особенности нравятся. Просто первые обычно кричат об этом громче, потому их лучше заметно.

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

              Я только за нестандартные отклонения — это же развитие (или хотя бы попытка :). Но если каждый год делать такие своеобразные условия и каждый год слышать множество недовольных отзывов — наверное стоит задуматься?

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

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

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

        про описание ключевых моментов условий в Input/Output

        Это ещё что, вы задачу Google Code Jam 2012 :: 1B Round :: Tide goes in, tide goes out читали?

        P.S. Ещё один замечательный пример — региональный этап всероссийской олимпиады, задача "Космический кегельбан" (геометрия, 3 задача второго дня). Там то, что в сотни раз упрощает задачу (по сути ключевой момент условия), описано в "Формате входных данных".

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

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

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

А как все сдавали G? У нас были какие-то пляски с epsilon'ами и WA на >70 тестах. Или там предполагалось в integer'ах/rational'ах писать?

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

    У нас было много wa82, прошло в даблах, только один момент в длинке на c++

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

    Еще хотелось бы узнать с какой точностью получает ответ авторское решение?

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

      Ну учитывая, что тут всё можно посчитать абсолютно точно в квадратичных иррациональностях с длинкой, то скорее всего у авторов есть такое решение. Если нет — то они не очень правы :)

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

        Все авторские решения либо в целочисленной длинке, либо в BigDecimal'ах. И если у участников заходило решение в даблах, то это недоработка тестов и на тимусе подобные решения будут исправно валиться.

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

          У нас кстати зашло решение в даблах сегодня :)

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

          Когда задачи будут на тимусе?

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

            Не раньше начала июня. Ближайшая неделя и без того перегружена контестами, потом все способные проводить контест уедут в Варшаву болельщиками. Да и хочется найти другого переводчика и всё перевести заново — уж слишком русское строение предложений для английского текста.

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

          а зачем так делать?

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

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

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

              Ну не знаю, на Java дабловое решение переделывается в "целочисленное" (учитывая, что мы работаем только с числами вида a + sqrt(b), где a, b — рациональные) за 5, максимум 10 минут. А на c++ за конечное время на контесте не переделывается. Так что это задача не на "развитие пространственного воображения", а на "шаманство с eps" либо "кодирование на джаве" :)

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

                У меня в решении не было чисел вида a+sqrt(b), мне хватило операций с векторами (сумма, разность, векторное/скалярное произведение). И у меня даже не было длинки как таковой — я решал в парах <long long, double>, этого достаточно, чтобы при данных ограничениях оно считалось точно. Просто подход к решению, чтобы в нём не было корней, несколько другой. И тут-то и требуется пространственное воображение.

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

              Не вижу ничего хорошего в том, чтобы решить задачу, оценить точность и понять, что надо в дополнение к 100 строкам красивого правильного кода написать 200 строк технической банальности.

              Этак интересные соревнования по спортивному программированию превращаются в скучную рутину.

              Кстати, похожая ситуация с длинными числами в задаче про плоды (по крайней мере у нас).

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

                Плоды решаются в лонг лонгах. В меньших ограничениях её не дать — тогда она решается тупым разложением на множители и становится совсем неинтересной.

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

              на самом деле цель благая, я помню прекрасно холивары в ПЗ, но тогда и ограничения нужно давать 109?

              у нас прошло в даблах путем стопицотзапихивания

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

                10^9 не стали давать именно для того, чтобы не требовалось на плюсах писать полноценную длинку. Казалось, что и при 10^5 по точности дабловые решения должны надёжно отсекаться. Оказалось, что нашими тестами — нет. Ну да, наш косяк.

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

    У нас прошло решение в long double, может проходит и в double. О погрешностях вообще не думали. Можно сказать прошло с первого раза, после исправления багов в формулах :)

    Идея была следующая. Повернем всю картинку так, чтобы лучи, по которым движутся дроны были в плоскости xOy. При этом для удобства сделаем, чтобы один луч стартовал в (0,0), а второй луч в (a, 0). Тогда задача сведется к задаче на плоскости, а ее решить довольно просто. В этом решении точность могла теряться только при повороте картинки.

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

А может кто-нибудь код по D показать, пожалуйста, не понятно где набажили :(

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

Был бы рад, если б разморозили табличку.

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

Кто-нибудь получал WA #12 в I? Написал довольно очевидное решение. Переберем сколько слева и сколько справа располагается кораблей с таким же классом как и известный. А дальше нужно дополнить позиции слева, кораблями с классом меньшим чем известный, и справа кораблями с большим классом чем известный. Все решается через кол-во сочетаний.

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

    Код в студию!

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

        Путём сравнения этого решения с почти таким же, но получающим AC, и последующего рефакторинга первого во второе было выяснено, что WA12 -- это на самом деле ML12.

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

          Спасибо. Печально, что система выдала неправильный вердикт. Да и на ML поскупились явно.

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

            64 мегабайта — стандарт для уральских задач. В этой задаче этого хватало с многократным запасом, памяти требуется o(N).

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

              Жаль, что система мне об этом не напомнила :)

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

              ...в то время, как во всем остальном мире стандарт уже давно 256...

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

                Это где, на Topcoder например? :)

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

                  В АСМ задачах. И таки на ТС тоже давно пора поменять

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

                  Сперва бы компиляторы лучше обновили. А ML — фиг с ним.

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

                  Да на TC давно пора увеличить TL до 256 метров. Я 2 раза не сдавал задачу из-за того что слишком сильно поджимал массивы и решение падало.

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

                ну если в задаче расчитывается, что ее надо соптимизировать по памяти, логично поставить 64мб (или даже меньше, если понадобится)

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

                  Да, такие задачи бывают. В этом случае МЛ обычно выделяют жирным. Я против подобного МЛ по умолчанию

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

            Можно было хранить треугольник Паскаля векторами...(N^2)/2 как раз хватало.

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

              Да, нам примерно так пришлось извращаться. Когда считали C(n,k) c помощью факториалов — получали TL35, наверное слишком много модулей было. Полное хранение C-ек давало MLE, поэтому мы стали хранить только половину этой матрицы, т.к. C(n,k) = C(n,n-k), и тогда только зашло.

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

                Ты предпросчитывал обратные значения к факториалам?

                Я, например, посчитал по формуле три строчки треугольника Паскаля. Этого в задаче достаточно.

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

                  Да, я препросчитывал обратные значения к факториалам. Про три строчки не знаю, задачу писал Никита, а я ее запихивал)

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

                У нас прошло и с предподсчитанными значениями факториалов и обратных факториалов. Я тоже немного боялся что может заТЛить из-за кучи операций взятия по модулю, но прошло сразу. Причем локально работало очень быстро.

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

                  У нас не прошло с предпросчитанными факториалами (но не обратными), но это легко исправилось сохранением всех цэшек заранее, т.к. верхний индекс у цэшки принимает только три возможных значения.

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

                  Чеерт, действительно, всего три значения. Не заметили на контесте, долго шаманили.

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

Я, наверное, очень сильно туплю, но, пожалуйста, расскажите решение L (найти последние 3 не нулевые цифры числа N!(1 ≤ N ≤ 108)).

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

    Посчитаем кол-во двоек и пятерок, дающих нам конечные нули. Далее за O(N) можно найти ответ. Каждое число, пока есть лишние 5-ки и 2-ки делим на 5 и на 2. Далее берем его по модулю 1000 и умножаем на ответ, который тоже берем по модулю 1000. Нужно еще учесть, что в нем могут получится ведущие нули, например 8!

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

      Когда прочитал ваше сообщение, очень увидился.
      Думал, как может пройти 2*10^8 взятий по модулю.
      Написал решение по вашему разбору.
      http://pastebin.com/NzNsB219
      В нем есть assert(n<=1e7);
      Но задача зашла. То есть не было ни одного теста, где n>10^7.
      В ограничениях на задачу было написано, что n<=10^8.
      Как-то не хорошо получается))) Написано одно, на деле другое.

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

        На контесте у меня была похожая идея, как написал Jokser но меня вообще испугало ограничение в 108, да и наткнувшись пару раз на скорость тестирующих машин на Opencup (довольно медленные), я решил писать хитрее с прекальком небольшим.

        Где-то накосячил, получал WA 15.

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

          Я тоже получал WA 15, ошибка была в прекальке.

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

        На локальном компьютере подобное решение на тесте n = 108 работает за 1452 мс, в то время как ограничение было 2000 мс; надо думать, на тестирующем сервере время не сильно отличается. Так что всё хорошо.

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

          сколько-сколько?! о_О
          У вас не комп, а зверь какой-то.
          Во вкладке запуск на кф работает 5.5секунд.

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

            Интересно. В запуске на Codeforces — 2980 мс. Скомпилировал как 32-битную программу и запустил на том же компьютере — 2699 мс. 64-битная магия!¹

            Насчёт ограничений тогда беру свои слова обратно.

            ¹Видимо, потому что переменная-аккумулятор — long long.

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

              Запуская решение под разными компиляторами, увидел интересную вещь:
              Если res и x хранить как long long, то
              под msvc2005 программа работает 7.44сек
              под gnu c++ 4.6 программа работает 5.5сек
              Теперь. Если res и x хранить как int, то
              под msvs2005 работает за 1.1сек(!!!)
              под gnu c++ 4.6 работает за 3.22сек
              Какие-то непонятные различия в скорости))

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

        1e7 <= 1e8. Все ограничения соблюдены. )))

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

А где можно надыбать положение? Не вижу на сайте опенкапа

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

Можно ли в задаче D ждать на планетах? То есть приехать в момент времени x на планету, а уехать в x+y...

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

    а) Это нигде в условии не запрещено б) Это показано в семпле, например.

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

      Спасибо, значит ошибка у меня была не в этом :)

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

      а) -- это отличный аргумент. В условии также не запрещено уничтожить повстанца межпланетной пушкой, например. У "самого талантивого спецагента" с машиной времени просто обязана быть межпланетная пушка, а с ней даже летать никуда не надо.

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

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

        Например, в этой задаче было написано что оказываться на одной планете дважды рискованно и нужно стараться так не делать, но нигде четко не написано, что нельзя дважды в одно время попадать на одну и ту же планету. Было ощущение, что можно вывести любой ответ, а потом подать апелляцию с формулировкой "но я же старался не дать агенту встретиться с самим собой". Хотя, ясно что просто так это бы не упоминали в условии, так что в решении это само собой соблюдалось.

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

          А как же это: "But remember that if you will be at least twice in the same planet at the same time, you will be able to face yourself. Since such a meeting would be likely fatal, it can not be allowed until the job will be done." "Но помните, что если вы дважды окажетесь на одной и той же планете в одно и то же время, вы рискуете столкнуться с собой. Поскольку подобная встреча наверняка окажется фатальной, её нельзя допускать, пока задание не выполнено."

          ПС Только сейчас понял претензии, но по-моему они еще более глупые, чем просто недочитать условия.

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

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

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

      Вы бы не могли подсказать, что в 5-ом тесте по задаче D?

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

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

        Пример: 2 2 1 1 5 0 1 2 6 7 1 2 5 7

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

        В 5-м тесте всего одна вершина и нужно найти путь в прошлое. Причём есть пути как с ожиданиями, так и без них.

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

Народ а как участвовать в московском контесте в альтернативное время?

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

    Обратиться к координатору сектора, далее от него получите инструкции.