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

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

Всем привет!

В четверг, 6 декабря в 19:30 MSK состоится Codeforces Round #153, автором которого являюсь я. Это уже третий мой раунд на Codeforces и я надеюсь, что будут еще.

Спасибо Shtrix, Seyaua и sdya за помощь в тестировании задач, а также Gerald за помощь в подготовке раунда. Отдельное спасибо Delinur за перевод условий на английский.

Надеюсь, задачи вам понравятся.

Всем удачи!

UPD: Опубликован разбор задач.

Поздравляем победителей!

Division 1:

  1. Egor
  2. tourist
  3. rng_58
  4. kelvin
  5. Burunduk1

Division 2:

  1. inker
  2. WhoTheHellIsMe
  3. memo1288
  • Проголосовать: нравится
  • +173
  • Проголосовать: не нравится

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

All that red color suggest a hard contest :)

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

AT LAST !!

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

Сколько лет, сколько зим!))) После последовательных Codeforces раундов, промежуток между последним и этим контестом кажется немножечко долгим:) Хорошего контеста!)))))

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

Отлично!Новый раунд!

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

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

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

Надеюсь этот раунд не будет слишком трудным как прошедший раунд.

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

I have to go to school on Dec.7 Maybe i can't do this.

T T

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

yeees!Can you make more contests,please?It's boring when there's nothing on codeforces...:)

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

Привет с UOI?

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

Are the scores of the problems decided? edit: Sorry, I was not asking for the scores of the problems, but if they will be static or dynamic :)

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

I think contest had better be arranged in Friday or Saturday,in that case more people can compete in contest.

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

    No it wouldn't be better because we would had to wait more. Everyone is getting bored from waiting.

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

Let's hope the server will stable during competition

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

Seyaua, sdya are the same person ! :D ****

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

I think it has been long since last competition. Thanks for all the contests and their makers, I really enjoy myself in the contests!

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

Good Luck Everybody!

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

GOOD LUCK TO EVERYONE IN TONIGHTS CONTEST.

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

Всем поменять цвет !

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

    А тебе — до серого!

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

      Мда, добрый человек. Ладно, тебе оранжевого. Может, будет как в мультфильме: "Это я раньше злой был, когда у меня велосипеда не было..."

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

Да, прошлый раунд был для меня первым. Не ожидал такого уровня задач. И потерял от начального рейтинга 86. Попробую еще раз, надеюсь, что-то получится. Чего и всем желаю.

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

Good luck everyone!! Have fun!! :D:D

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

если кто не в курсе, вышла IntelliJ IDEA 12. Стартует и компилирует быстрее предыдущей, CHelper вроде не глючит. До контеста еще целых 50 минут. Обновляемся, посоны!))

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

    Только Eclipse! Только ПО, доступное на финале! Только хардкор!

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

ради интереса зашел посмотреть список зарегистрированных на контест див 1 и заметил: подряд зареганые два аккаунта — himemeizhi и hime . причем почта(префикс до @) второго аккаунта совпадает с ником первого. какова вероятность, что это разные люди?

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

А какие 2 остальные ?

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

Was I the only man who had "error 502" now?

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

There is one thing that I will never forget about this contest

_**There's only one thing Petya likes more than numbers: playing with little Masha.**_
»
12 лет назад, # |
  Проголосовать: нравится +49 Проголосовать: не нравится

There is one thing that I will never forget about this contest

There's only one thing Petya likes more than numbers: playing with little Masha.

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

Little Petya likes "a lot of things" a lot :D

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

    Sometimes you get a mistake, the author is the same :D Sorry for my bad english :p

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

Contest

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

Опять эти проблемы с большими очередями. Очень напрягает. Сегодня мне не хватило 30 секунд залить решение по Д, а потерял на очереди я минут 5.

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

I solve problem B of Div.1

then lock my answer

and go hack two contestant with same Test Case

but unfortunately when i checked my hack TC too my code , I saw my solve give WA too :|

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

What was the challenge case for Div 1 Problem B? No one did many challenges in my room, so my solution could be wrong :( .

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

Для меня контест прикольный, кроме Д (исключительно из того что не люблю эти ксоры с системами по модулю).
Но в любом случае + автору.

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

Very slow system testing :(

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

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

объясните пожалуйста как решать задачи D и Е(div 2)?

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

    Д-шка вроде решалась так: заведем 2 массива: в первом перестановка Пети, во втором — перестановка Маши.

    Создадим функцию check, которая принимает на вход 2 перестановки и число k, и возвращает булеан. В ней создаем перестановку (1, 2, .. n). Затем в цикле от 1 до k применяем к ней первую перестановку. Если на каком-то шаге получили вторую перестановку, то если разность текущего шага и k четна, возвращаем true, иначе false. В конце возвращаем false.

    В основной программе создаем перестановку, обратную перестановке Пети. Затем запускаем функцию сначала от перестановки Пети, Маши, и числа k. Потом меняем перестановку Пети на обратную, и опять запускаем функцию. Если хоть 1 раз вернулся true, выводим YES, иначе — NO.

    UPD: Может быть неправильно, систесты не прошла(

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

      У тебя первая и вторая операция могут давать одинаковый результат.

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

    В Е суть в том, что число T=НОК(2,3,...,k) формирует своеобразный период, так как Петя не сможет никоим образом обойти числа, которые делятся на T. Соответственно его оптимальные действия будут повторятся с этим периодом.

    Поэтому достаточно рассмотреть динамикой один такой период, от 0 до Т, а также кусок, когда между текущим числом, и тем числом, которое нужно получить, не останется ни одного числа делящегося на Т (это будет или от b%T до T, либо от b%T до a%T, если b/T=a/T)

    Итоговая сложность О(Т)

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

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

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

      Намного детальнее, чем в предварительном разборе! Спасибо!

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

Are the solutions being checked manually?

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

it's slowlyest system testing....

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

Sooooo slow system testing :(

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

The problems are harder and harder?T T need to work hard^ ^

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

Ну вот... Зафейлил С, ибо: 1. Забыл поставить break, из-за чего решение вместо 2*N стало квадратичным. 2. Использовал int, что привело к его переполнению.

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

Unlike Codeforces Round #152, this contest has a very low speed system testing... :(

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

Может, имеет смысл ограничивать количество зарегистрированных на контест? Очень медленное тестирование на претестах ведь реально влияет на результат! Ты послал задачу, ждешь вердикта 10 минут и получаешь WA — нужно исправлять. Получается, -10 * 2 * i (где i — номер задачи) баллов за задачу, потому что в нормальном случае тестируется (и находится в очереди) задача не дольше 20-30 секунд.

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

    Ограничивать участие? Ну вы даете..

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

      На TopCoder так и делается. Там лимит раньше был 2200 участников, сейчас, может быть, увеличили.

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

    А как вы предлагаете отбирать тех, кто будет контест писать? По рейтингу или кто раньше зарегался?

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

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

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

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

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

      Немного??? Вы смотрели коды на B div 2?

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

        Там есть короткое решение. Мы в начале проверяем, что есть хотя бы 2 различных числа. А потом мы перебираем все пары позиций, пытаемся поменять местами числа на них и проверяем, не отсортирован ли массив. Если нет -- выводим ответ. Если не нашли нужной пары -- выводим "-1". Можно понять, что для N > 3 ответ всегда существует (при условии, что есть 2 различных числа) и что этот алгоритм найдет его за O(N).

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

        можно достаточно коротко) например:

        http://mirror.codeforces.com/contest/252/submission/2711810

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

Everybody seems to get WA in test case 12 in Div 2 -problem B. I wonder what that test case is ?

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

System testing has already lasted 20 minutes, but checked solutions of first 15 minutes of contest, that's amazing speed:)

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

why you need that too many test cases !!! :o

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

very slow test system(((

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

Seems strange, but I think Problem B was harder than Problem C. Problem C was quite standard, and non-standard problems cause much more trouble for the competitors:)

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

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

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

Div. 2 B не должна быть Div. 2 B

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

    Может наоборот? Div.2 B должна соответствовать Div.2 B

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

      Да, должна, но в этом контесте не соответствовала.

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

Авторы контеста — вообще ребята! Четко!

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

Thank you for really nice problems and amazing contest :)

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

Here is my solution to problem B div 1: http://mirror.codeforces.com/contest/251/submission/2710934 The veredict was: "Runtime error on test 1". But I tested the same test in my computer with the same code and it worked fine. Has anyone had this problem?

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

For Problem B ,Div 2 , an O(n^3) solution is also passing [code]

I noticed through the test case that it is actually never going O(n^3) when all elements of the array are not the same and when n is large . But I can not understand why this happens .Can anyone explain please

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

    The complexity of this solution is O(N).

    Suppose N > 3. Then it's enough to check only 3 different pairs of distinct integers. One of them will be the solution we are looking for. The reason is that these 3 pairs lead to 3 different arrays, but there are only 2 possible sorted arrays, so one of these 3 arrays will be unsorted.

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

.. . How to solve Problem E. ? ... QAQ

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

    I'll post the complete editorial in a few days. Now I can give you a hint.

    Suppose there exists a node of degree 3. Let's take any such node and call it a root. Then we can reduce our problem to the following one: given a non-root node v we need to calculate the number of ways to place the sub-tree of node v on a rectangle 2xK for some K with the restriction that v is placed to the upper-left corner of this rectangle. Note that the value of K can be determined uniquely from the size of sub-tree. This problem can be solved with DP in linear time.

    The reduction to the described problem is also non-trivial, but at least it's easier than the whole problem.

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

How to solve problem D div 1 ?

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

Can anyone show me the logic in choosing 0 (numbers that divide lcm(2..k)) to be the mediate value in problem C div 1?

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

    In case you misunderstood my words (I assume that by seeing those down votes), this is merely a question :)

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

Anyone can tell me how to solve C div 1 :( Just a hint, plz :D

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

    The essential trick was that if your current integer is divisible by all numbers from 2 to k, then the only thing you can do is to decrease this integer by one. Therefore, you can use dynamic programming to count how much time you need to reduce your integer by LCM. For instance, suppose a=80, b=3, k=3. Then LCM(2,3)=6. So you count separately the time you need to get from 80 to 78, then from 78 to 72, the from 72 to 66, ..., from 12 to 6, and finally from 6 to 3. It's easy to notice that all of those in the middle are equal.

    P.S. That's a shame that I didn't see this trick during the contest, but I was thinking of some DP with LCM...

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

Fail (( My solution in D(div2) was correct ... I just forgot to clear my array ...

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

Салам всем. Почему я у себя компилирую и выполняю файл с тестом 6 3 10 выводит 2. А на кодефорсес выводит 1. Может подскажете в чем ошибка?

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

Editorial is published in Russian here @ http://mirror.codeforces.com/blog/entry/6054

I wonder if it is possible for someone to please kindly translate that into English for me?

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

Большое спасибо за контест! Задачи очень понравились

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

Отличный контест, спасибо!

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

Where can i see the editorial?

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

Are there any editorial?

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

    only published in Russian, I'm afraid.

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

      I'll publish the complete editorial on both languages soon. Currently I'm out of country and don't have enough time for editorial. Sorry for the delay.

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

I can't understand the Russian tutorial of Div.1 E. >_< I hope the English tutorial will be published soon. :)