Автор lperovskaya, 11 лет назад, перевод, По-русски

Всем привет!

8-го июля в 19:00 по московскому времени стартует квалификационный раунд Яндекс.Алгоритма! Напоминаю, что раунд виртуальный, а это значит, что вы можете запустить его в любой момент в течение суток с момента старта, после чего для вас лично начнется 100-минутная квалификация (даже если начать в 18:59). Пожалуйста, не обсуждайте задачи до 20:40 9-го июля — чей-то квалификационный раунд может продолжаться.

2000 лучших участников, справившихся хотя бы с одной задачей, будут приглашены для участия в отборочном этапе. А для тех, кто прошёл квалификацию в тестовом раунде, данный контест будет отличной возможностью ещё раз прочувствовать тестирующую систему и особенности TCM/Time.

Вперёд, за орденами! На кону почти две сотни футболок и более полумиллиона рублей! =)

Регистрация

Ссылка на тур

UPD: Материалы раунда доступны на официальном сайте соревнования.

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

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

Наверно, до 20:40 лучше не обсуждать? Также интересно, какие будут санкции и как это все будет отслеживаться?

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

    Спасибо за внимательность, время исправлено. Мы исключительно напоминаем добросовестным участникам соревнования и сообщества разрешенное время начала обсуждения.

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

Qualification will last 100 minutes even if you will start at 6:59 p.m. Please, do not discuss the problems until 8:40 p.m. July 9 why same as start 4:00 p.m someone can be still solving the problems. You need not type did not :D

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

Is pascal allowed? because this is the only programming language that i can use.

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

Maybe I missed something, but how can you prevent someone from cheating, like, creating two accounts, opening the problems with one account, solving them, and then submitting them with the other account later?

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

    This does not work, actually. The quota is 2k, you can write at most 5 different solution during the contest, so you can not make a significant impact on results.

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

    We have a system that finds similar solutions and presents suspicious pairs of solutions to the judge.

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

      No, I mean using the first account to read the problems in order to gain time advantage.

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

        so true. Also, if you do bad in your allocated 100mins, you can just register a new account and try again. so basically, the qualification round is 24hrs.

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

          Basically, most participants do not think about any cheating, cause that makes no sense — if u are not able to qualify to 2000 in fair manner, your chances to go to final are equal to 0.

          Also, I suppose cheaters will be banned for good and all.

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

            most participants do not think about any cheating

            Not sure if you have ever organized online contests, but from my experience I can say that there will as many cheaters as rules will allow. And for this competition virtual contest seems like a poor idea. Why not make it 24 hour long contest like google does?

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

        Just don't do it — it's that easy. Almost as easy as to go into the store and don't steal anything.

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

Что там с prewritten code? Емакс можно копипастить?

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

    Разрешается использование любого prewritten code, опубликованного в Интернете до старта квалификации, в случае, если это не нарушает права автора данного кода.

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

Good luck to everybody!

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

На страницах задач не работает элемент "Выбрать язык" (Firefox 22, Linux). Если нажать "Отправить", то решение посылается с языком, выбранным в первый раз.

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

    Видимо, это следовало тестить в тестовом раунде...

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

      То есть, обнаруженные после тестового раунда (который кто-то мог и не писать) баги следует игнорировать?

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

      В тестовом раунде все работало нормально!!!

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

    аналогично Linux Ubuntu 13.04 Chrome, Firefox — выбрать язык невозможно!!! Одну отправку уже потерял, подумал, может, автоматом откомпилирует С++. Но нет, получил, СЕ — программа на С++ компилировалась Java 6. Интересно, те, кто отправляют решения вслепую получают вердикт об ошибке компиляции?

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

      "При отправке решения «втёмную», оно сначала проверяется промежуточным набором тестов, перечисленных в условиях каждой задачи. Если решение не проходит их, участнику сообщается тип ошибки и номер теста, на котором она произошла."

      цитата из правил))

      Ubuntu 13.04, Chrome, никаких проблем с выбором языка не было, вкладку "посылки" не использовал

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

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

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

a

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

А тесты откроют?

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

Будет ли разбор задач?

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

    Раунд виртуальный, поэтому раньше, чем завтра вечером (по Москве 20:40) разбора не будет.

»
11 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
  • Не хватает ссылки на текущий тур с главной страницы ЯА.
  • В середине контеста в футере задачи перемешались все посылки.
  • Просьба выписывать время старта и финиша по местоположению пользователя.
»
11 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

How is the contest system supposed to work:

  1. Should someone who advanced from test round be able to participate in this round?
  2. Should everyone be able to see the current standings?
»
11 лет назад, # |
  Проголосовать: нравится -20 Проголосовать: не нравится

Yandex has a foul contest scheduling. Totally insane.

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

    i support yandex! its a good encouragement for all.

    (mistook in last comment)

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

    They exposed themselves. Go home yandex, u r drunk!!

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

    By unliking this comments you guys are proving nothing went wrong. Huh!! Just for a t-shirt the insanity scale is rising above. Go on, we are being amused by this as more effectively as u unlike more.

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

Условия в pdf файле отличаются от интернет-условий! Задача B абсолютно другая! После того как я задал клар, pdf условия удалили (по-моему). Как так-то? Прошло часа 4 после начала квалификации, и неужели никто, кроме меня, не заметил?

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

How many problems are there in the contest? It would be very kind if you answer and only after that put a minus on this comment, because there are already 3 people who could answer me but they didn't.

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

Как всегда Yandex доказывает, что упор делается на математику. И это круто)!

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

    И в чём крутость?

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

    Уберите спойлер!

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

      Всем спойлерам спойлер! Пойду сдам все за 3 минуты, я ведь теперь знаю, что там ... математика!

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

        надо будет весь курс повторить пока время еще есть)

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

    Блин, это не просто "упор на математику", это "только математика, только хардкор!"

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

      Да ладно, всего одна забавная с формулой и уже хардкор:)

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

Спасибо, что заменили файловый ввод/вывод на привычный стандартный!

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

Там условия только на английском?

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

    Доступны условия на русском. Нужно переключить язык на русский в нижней части страницы

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

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

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

Could you enable us to see the test cases, like in codeforces? If not, please put them for download (but ofcourse after the contest ;) ). It would be very great if you did that! :) Thanks!

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

Снято.

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

    Просто если тебе не понятен ответ, то это как говорит Аршавин "Твои проблемы".

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

    Такой ответ наиболее часто выдает жюри четвертьфиналов и полуфиналов ACM, только на английском: "Read the problem statement".

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

    Удалено.

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

    Ответ "Read the problem statement" ("Читайте условия задачи") обозначает, что ответ на вопрос участника содержится в условии задачи. В частности, если автор задачи не пояснил сэмпл, это относится и к разбору сэмпла. Ещё пример — участник неправильно прочитал формулу (такие случаи были с D).

    Ответ "No comments" ("Без комментариев") обозначает, что на заданный участником вопрос у жюри нет ответа. Это бывает в случаях, когда ответ проясняет часть решения; когда заданный вопрос вообще не имеет значения для данной задачи (пример: вопрос насчёт не указанного и не запланированного в условии соотношения параметров, например, "бывает ли p1==p2" в задаче B); когда вопрос касается содержимого того или иного теста ("А верно ли, что третий тест...").

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

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

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

Жаль, в D не успел сделать массив из 100 значений посчитанных вольфрамом.

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

    Ага, по началу это казалось неплохой идеей, но чем дальше, тем больше было понятно, что это сложно и очень много опечаток :(

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

      Какие опечатки? Кликаешь по ответу — получаешь в нормальном копирабельном виде.

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

        OMG. В питоне нету объявления массивов типа a[2][2] = {{1, 2}, {3, 4}} ?

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

      можно воспользоваться не вольфрамом, а питоновской библиотекой Sympy. Находим в википедии простую формулу с числами Стирлинга и пишем что-то примерно вот такое:

      from sympy import *
      import sympy.functions.combinatorial.numbers as nums
      
      z = Symbol("z")
      
      def Li(n):
        ans=0
        for k in range(n+1): ans+=factorial(k)*nums.stirling(n+1,k+1)*(z/(1-z))**(k+1)
        return factor(simplify(ans))
      

      Этот код выдает символическую формулу для Li - n(z), которую остается только скопипастить в решение))

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

    Я тоже до этого додумался, но это было как-то глупо делать на мой взгляд, интересно было бы узнать нормальное решение задачи D. Кстати возможно ли сдать Е быстрее чем за n * log ([сумма всех задач/k] + 1 )?

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

      Никто вам не мешал сделать Table[ sum(n = 1, inf) n^a/b^n , {a, 1, 10}, {b, 1, 10} ], но это не назвать решением ...

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

      O(n * log n) за счет сортировки. После сортировки решается в один проход, перед сортировкой оставляем в массиве остаток от деления количества задач в теме на мощь вундеркинда. upd. Вот кусок кода для случая k,x>0 http://likecode.ru/code/51dc4846099bd/

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

        Не подскажешь что мы проверяем в этой линии ? пусть отсортили за n log n, разве без бин поиска по ответу не обойтись ?

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

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

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

      Обозначим 1/b = x, тогда получится ряд, для которого можно посчитать область сходимости. Для каждого a можно посчитать сумму ряда в вольфрам-альфе. Дальше для любого b считается достаточно быстро.

      Формулы получаются несложные, возможно рекуретно выводящиеся. Тогда возможно, для любого a можно было их вывести.

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

        Чтоб получить результат для a=a+1, нужно взять производную для ответа для а, и домножить на х. Если сделать замену t=х-1, то все очень красиво получается. Для а=0 — ответ это сумма геометрической прогрессии, для каждого последующего а по формуле из первой строки.

        UPD. после таких замен значение функции превращается в вид X1/t+X2/t^2...+X(a+1)/t^(a+1) После обратной замены 1/t = b/(b-1), все легко считается в целых числах без использования целочисленной дробной арифметики. http://likecode.ru/code/51dc4d97afb73/

        UPD2. Невнятно написал, распишу подробней. Делаем замену, x=1/b При a=0 получаем ряд x+x^2+x^3... Почленно продифференцируем, и полученный ряд домножим на x. Получим 1*x+2*x^2+... — то есть получили ряд при a=1. Еще раз почленно продифференцируем и домножим на x. Получим 1^2*x+2^2*x^2+3^2*x^3... — ряд при a=2 и т.д. Сумма ряда при a=0 равна x/(1-x), сделаем замену t=x-1 (то есть x=t+1) Сумма ряда при этом стала равна -1-1/t. Возьмем производную, получим 1/t^2, домножим на x=t+1, получим 1/t+1/t^2 — это сумма ряда при a=1. Опять возьмем производную, и домножим на (t+1) и т.д. Коэффициенты при 1/t^j — будем хранить в массиве. Получив все коэффициенты сделаем замену 1/t=b/(1-b)

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

      Можно было решать так.

      1. вывести или загуглить формулу: вот она.

      2. Честно реализовать то, что получилось, для многочленов.

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

        Можно было вывести табличку получившихся вещественных чисел (просуммировав первые несколько членов ряда — понятно, что он быстро сходится, если b != 1), увидеть, что в знаменателе у результата на вид всегда b-1 в какой-то степени, и понадеяться на удачу.

            res = 0;
            for (i = 1; i < 100; i++)
              res += pow (i,a) / pow (b, i);
        
            long long num, den, d;
            den = pow (b - 1, 15);
            num = res * den + 0.5;
            d = gcd (den, num);   
        
            cout << num/d << '/' <<den/d <<'\n';
        

        Почему-то сдается.

        upd: Даже не знаю, какое решение мне больше нравится, твое с гуглом или мое с подгоном под ответ.

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

          Такого решения мы не ожидали. Забавно.

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

          Делал то же самое, проверив результат на "10 2" через OEIS. Кроме того, домножал не на фиксированную степень знаменателя, а просто на b-1 пока не будет, что число с точность 1e-4 целое. Это заходит с запасом, если учитывать, что всегда можно суммировать double точнее, чем по очереди.

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

        Ещё можно было так. Понятно, что при b = 1 ответ inf, а при b != 1 нужно только узнать константы это решить системы линейных уравнений, правда всё в BigInteger.

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

      Если не ошибаюсь, задача Е решается за O(n):

      1) Найдём наибольшее количество дней, которые Гена сможет решать по Х задач, и количество оставшихся студентам задач => сколько дней нужно студентам, чтоб дорешать те задачи.

      2) Если количество дней Гены не меньше чем у Студентов, выведем ответ: сумма/(К+Х) с округлением вверх. Иначе:

      3) Иначе Гена должен дальше помогать студентам, но уже решая за день меньше чем Х задач.

      Заменим исходный массив на массив остатков при делении на X ( все остальные задачи Гена уже решил). Далее, очевидно, Гена будет "брать" по одному числу из этого массива каждый день, а значит выгодно ему брать максимальные. Это будет продолжаться до тех пор, пока студентам на оставшиеся задачи студентам не понадобиться количество дней работы, не большее чем у Гены.

      4) Искомое количество дней можно было б легче подсчитать, отсортировав массив остатков, и пройдясь от большего элемента к меньшему, но чтоб получить линейную асимптотику придётся довольствоваться лишь частичной сортировкой:

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

      Итого это потребует операций N + N/2 + N/4 + ... = O(N)

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

Раунд в идейном плане неплох, но мне не очень понравился по следующим причинам:

D — прекалкилась Вольфрамом, что не очень-то хорошо для такого формата соревнований

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

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

    Эм, а что не так с задачей Е? Сдал совсем тупой O(n*lg(n)*lg(sum)), работает секунду на Джаве.

    А, я понял, X = 0, наверно.

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

      Ну конечно. Думаю, это основная проблема у всех была.

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

        Я сдавал её весь контест, так как тоже написал бин. поиск и чтобы проверять, правда ли, что все участники успеют отрешать всё, что не успел вундеркинд умножал K на предполагаемое количество дней и получал выход за границу long long'а, и есть у меня подозрение, что найдется ещё хоть кто-нибудь, кто делал бы также :)

        UPD: тоже, как и yarr, а не как goryinyich.

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

          Я посидел, подумал над этой строчкой и написал в бигинтах этот иф :D

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

          вооо WA 31 ?))

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

            У меня 41.

            Хотя это, наверное, зависит от изначальной оценки на правую границу бин. поиска, если делать её более грубой, то наверное, можно нарваться на wa раньше.

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

              я сделал 10^14 (как макс ответ), потом поставил ее как : [(сумма всех задач)/k] + 1 и все зашло (правда дошло после окончания уже)

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

    D — единственный раунд, в котором можно использовать эту задачу безболезненно, была квалификация. Мы знали про возможность предпросчета, и даже считали, что это хорошо. Есть довольно простой вывод необходимого рекуррентного соотношения.
    EDIT: да, конечно, можно было сделать большие ограничения и требовать длинку.

    E — а вы правда думаете, что все задачи должно быть можно сдать втемную безболезненно в этом формате?

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

      Нет, я правда думаю, что не надо специально козлить в этом формате.

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

        На топкодере тоже некоторые крайнии случаи не дают в сэмплах. Никто не жалуется... А тут есть выбор как сдавать.

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

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

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

            Не всегда даётся минтест. Например задача про gcd с какого-то старого TCO 500 с 1 раунда кажется...

            UPD: вот задача Два регистра

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

              Пример задачи так и не привели. Минтест и частный случай — это разные вещи. Здесь можно было даже не заметить, что в инпуте возможен 0.

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

                0≤X, K≤109, 1≤X + K Как можно не заметить?

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

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

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

                  Если минтест принципиально является частным случаем для конкретного решения — в чем тогда различие? Можно ведь написать так, чтобы все работало без костылей.

                  А иначе это все равно что написать функцию проверки на простоту, в которой первой строкой if (n%2==0)return false; и потом называть число 2 частным случаем, который портит всю малину.

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

                  Почему отсутствие в сэмплах крайнего случая теперь называется "специально козлить"? К тому же посылка в темную и предполагает, что Вы идете на риск (и уж кажется логичным, при этом проверить крайние случаи).

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

                  В задачах на теорию чисел 2 и степени двойки это всегда такой дол^Wчастный случай...

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

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

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

                  Задача NumberGrid с финала ТСО 2011 года. Там был особый случай 1*n, где n > 1, но его не было в семплах

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

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

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

                  А в СПбГУ считают(ну многие), что задачи с изюминкой это хорошо))

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

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

                  У меня же в данном случае претензии не к тому, что вот авторы такие-плохие дали частный случай, а именно к тому, что он совершенно незаметен.

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

                  А в НИУ ВШЭ считают (тоже многие), что это полный отстой =)

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

                  В чем его незаметность? Ноль в ограничениях всегда наводит на мысли, нет?

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

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

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

                  А авторы-то в чем виноваты, что вы плохо прочитали ограничение? Или надо ноль было 20-ым шрифтом написать?

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

                  Так может проблема таки в "не заметил"? Ну а чем это отличается от "написать решение за квадрат, ой, а я не заметил, что ограничение 10^5, авторы бяки"

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

                  Нет, надо было просто дать 1 пример с ним. Что все нормальные люди делают — у меня с частными случаями уже не помню когда проблемы на контестах были.

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

                  В этом проблема, безусловно тоже, но только отчасти. А авторы все равно бяки, поскольку давать такую явную подставу на АСМ — это я еще могу понять, но делать из соревнования быстрого формата лотерею типа "засабмитил в открытую ИЛИ не повезло" — это просто превращение соревнования в трэш.

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

                  ========================================================

                  Выбор стратегии — дело участника. Если вы в конкретной задаче уверены в своей внимательности (при чтении условия, при написании решения, при тестировании), хорошей стратегией будет посылать «втёмную». В противном случае хорошая стратегия — посылать «в открытую».

                  Соответственно, если у вас падает задача, посланная «втёмную» — это повод пересмотреть в следующий раз стратегию. Может быть, в следующий раз стоит посылать подобную задачу «в открытую». Кстати, наличие квалификационного и тестового раундов несколько упрощает вам задачу выбора стратегии в следующих раундах.

                  Если участник выбирает стратегию «всегда посылать всё втёмную», это его право, но жюри имеет право выбирать задачи, которые затрудняют выигрыш с такой стратегией. Лично я считаю, что соревнования по таким правилам интересны, когда в них часто выигрывает участник, не пользующийся какой-либо из тривиальных стратегий («всё втёмную» или «всё в открытую»). В противном случае имело бы смысл выбрать одну из версий правил.

                  (Упс, кажется, я три раза сказал почти одно и то же?..)

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

                  Спасибо, кэп =) Питерцы — традиционно фанаты трэша, поэтому даже спорить не буду.

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

                  ==========================================================

                  Это единственный оставшийся аргумент? OK.

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

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

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

                  ==========================================================

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

                  Это если вы действительно что-то хотите изменить, а не закончить на "нам друг друга не понять" и так дальше и разочаровываться в половине контестов.

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

              И где здесь частный случай? 1? Это надо написать задачу через очень другое место, чтобы общее решение для этого случая не работало.

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

        А мне, наоборот, кажется, что такие задачи очень хорошо вписываются в этот формат. Для них хорошая стратегия — посылать «в открытую».

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

Как решать С?

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

    Таки-разобраться с теорией Шпрага-Гранди, а не просто выучить как решается ним

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

      Линк в студию? Пойду разбираться))) Лично мне мои познания в этом направлении абсолютно не помогли, и я просто подгонял ответ под брут.

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

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

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

          Ого, сколько там всего) Спасибо, в свободное время почитаю.

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

            Part'а I за глаза хватит, чтобы покрыть 90% задач с контестов по теории игр =)

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

              Да мне за глаза хватало и "_ксорим все и сравниваем результат с нулем_"=)

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

                И этого было достаточно, чтобы решить эту задачу :)

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

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

                  Вот сижу и расписываю:)

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

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

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

      Так как же решается С?

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

    Первое число равно (N*(N+1)/2.

    Дальше понимаем, что наша игра есть простой ним. Посчитаем xor всех чисел от 1 до N. Немного помогает то, что (2*k)xor(2*k+1)=1.

    Дальше если XOR равен 0, то ответ 0. Если XOR=1 , то ответ (N+1)/2.

    Для всех остальных XOR я заметил, что номера кучек, из которых мы можем совершить первый ход, образуют ряд последовательных чисел, последнее из которых равно N.

    Дихой найдём первое число в этой последовательности.

    Кучка подходит, если XOR^i<i.

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

      А можно про это поподробней: (2*k-1)xor(2*k)=1? Что-то оно не работает.

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

        Исправил. Теперь правильно. Чётное число (2K) оканчивается в двоичной системе 0. 2K+1 будет отличаться лишь тем, что в конце будет стоять 1.

        Пусть 2K={mask}0,тогда 2K+1={mask}1. Если проксоришь, то {mask}^{mask}=0, и останется только 1.

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

        удобнее использовать то, что 4k^(4k+1)^(4k+2)^(4k+3) = 0

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

    Решал следующим образом. Посчитаем XOR (побитовое сложение по модулю 2) всех чисел от 1 до N. Пусть мы получили число S. Для того, чтобы позиция стала проигрышной, нужно изменить одно число так, чтобы новая сумма S' стала равна 0. Если мы заменим некоторое число X на X' (X' < X), то полученная сумма будет равна: S' = S^X^X', то есть нам нужно, чтобы существовал X', такой что S^X^X' = 0, что равносильно S^X = X'. Значит, если мы хотим изменить кучку размера X, необходимо и достаточно, чтобы выполнялось S^X < X (очевидно, что для каждого X мы можем сделать не более одного хода). Легко проверить, что данное неравенство верно тогда и только тогда, когда в числе X выставлен бит I, где I — старший ненулевой бит числа S. Соответственно, ответом на задачу будет количество чисел от 1 до N, в которых выставлен этот бит I.

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

      Причем для получающихся чисел этот бит всегда либо старший из всех встреченных битов (тогда ответ — расстояние от n до ближайшей снизу степени двойки), либо младший (тогда ответ — (n + 1)/2 — годятся все нечетные), либо его нет (тогда ответ 0).

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

У этой задачи очень короткое условие. Вычислите сумму .

Да-да, причём большую часть условия занимает фраза "У этой задачи очень короткое условие".

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

i think my solution on problem B was better than one int the site; we know that k>=4 . if k>=4 and k^2=p1*p2+1 than k must be even and k-1 and k+1 must be primes. at first i use eratostenes sieve and than iterate (k=4;k<=n; k+=2;) if(k-1 and k+1 prime)print k;

please coment it's time complexity.

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

    why is this if k>=4 and k^2=p1*p2+1 than k must be even and k-1 and k+1 must be primes,I dont understand the theorem you used.can you please explain...

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

      IMHO, k^2=p1*p2+1 => k^2-1=p1*p2 => (k-1)*(k+1)=p1*p2 => (k-1)=p1, (k+1)=p2. But it's wrong. UPD1: I was wrong.

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

        It isn't wrong. p1,p2 are prime so
        k-1 = p1, k+1=p2 OR k-1=1, k + 1 = p1*p2 = 3 but that's impossible

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

        It's correct.
        There are 4 cases:
        1) k — 1 = 1, k + 1 = p1 * p2 => k = 2 , p1 * p2 = 3 — impossible
        2) k — 1 = p1 * p2 , k + 1 = 1 — impossible
        3) k — 1 = p1 , k + 1 = p2
        4) k — 1 = p2 , k + 1 = p1 — equal to 3)

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

Получил вчера письмо от Яндекса следующего содержания:

Мы подвели официальные итоги квалификационного раунда. К сожалению, вы не набрали достаточно очков, чтобы пройти в отборочный этап.

Благодарим вас за участие и желаем успехов в следующем году и на других мероприятиях Яндекса.
Команда сервиса Яндекс.Contest

Я занял место 1259-1283 и сдал 1 задачу, в правилах написано, что

"Квалификационный раунд начнется 8 июля в 19:00 и продлится 24 часа. Для участия в нём зарегистрированный участник должен нажать на ссылку «Начать соревнование», после чего для него начинается 100-минутный раунд с виртуальным участием. 2000 лучших участников пройдут в отборочный этап."

Почему не прохожу в отборочный раунд не могу понять, что-то я видимо упустил?

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

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

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

    Я тоже получила такое письмо на один ящик и письмо о том, что прошла, на другой. Так получается если, например, один раз войти через гугл месяц назад, а другой раз через вконтакте неделю назад, и оба раза зарегистрироваться на соревнование. (Дальше тоже можно делать как я: осознать это после тестового раунда, когда пришло письмо о непрохождении дальше, и одновременно мое имя появилось в списке прошедших, спросить у организаторов, что делать, понять, что делать ничего не надо, можно просто участвовать от одного аккаунта).

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

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

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

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

      При регистрации на контест указал почту на gmail, а письмо о том, что я прошел пришло все равно на ящик в яндексе. Зачем тогда просят основную почту указывать?

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

Will you make editorial as the test round you make a very good one? :)

I want to understand the C (Board Game), I have lot of try (I know the nim..) but my last try got TLE, so I download the solutions, but I didn't get it. The solution is very short, exists some short explanatation? (Or just should realize this pattern?)

UPD: Sorry my comment, I found the analysis .