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

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

Всем здравствуйте)

Рады приветствовать вас на очередном раунде Codeforces #117 для участников Div. 2. Традиционно, остальные могут поучаствовать в нем вне конкурса.

Задачи для вас были подготовлены группой авторов в составе: Павел Холкин (HolkinPV), Иван Фефер (Fefer_Ivan), Николай Кузнецов (NALP) и Геральд Агапов (Gerald). Мы благодарим Михаила Мирзаянова (MikeMirzayanov) за систему Codeforces и Марию Белову (Delinur) за перевод условий.

Распределение баллов вновь будет динамическим) Подробнее об этом можно найти здесь.

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

Некоторые участники Див. 1 зарегистрировались на соревнование раньше, чем была произведена настройка регистрации. До начала раунда это будет исправлено, и они будут участвовать вне конкурса.

Надеемся раунд пройдет успешно и всем понравится. Желаем удачи и высокого рейтинга!

UPD: условие задачи 182E - Деревянный забор было сформулировано неверно, что привело к несоответствию решений, правильный вариант условия появится совсем скоро, приносим участникам свои извинения.

UPD2: контест объявлен нерейтинговым.

UPD3: разбор задач можно найти здесь

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

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

Почему не все красные, желтые и фиолетовые отмечены звездочкой в списке зарегистрировавшихся, они же вне конкурса?

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

And are there dynamic problem max scores used?

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

Задачи по сложности расположены будут?

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

На этот контест уже 161 аккаунт с рейтингом "0" зарегистрирован =)

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

502 Bad Gateway...Please allow me to enter

UPD:Oops...Did not realize that we have been given 10 more minutes to get ready :)

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

Классно. Не успел зарегистрироваться, расстроился, а оно возьми и упади вместо начала. +5 минут для регистрации и довольный я.

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

Problem A will be the easiest one as the first dynamic contest ?

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

07:00 PM (Moscow Time), is the ideal time for a programming contest, please to keep this schedule for the future competitions.

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

В задаче C нету ошибки в выходных данных в третьем примере?

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

    Нет. Там 4 надо на -1 умножить, сумма получится -11.Это и есть возможный максимум по модулю.

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

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

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

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

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

В претестах к задаче Е и самом авторском решении ошибка. Читаем условие. "Два забора будем считать одинаковыми, если соответствующие последовательности типов древесины досок заборов совпадают, в противном случае заборы различны" То есть, например, на тест 2 3 1 2 1 2 правильный ответ — 2. Действительно, если нас интересуют именно типы древесины, то очевидно что два типа переставить можно никак не больше, чем 2 способами. Однако, если не заметить этот нюанс, то несложно написать решение, которое ответит 4. Но 4 — ответ на другую задачу, на задачу, где было бы указано "Два забора будем считать одинаковыми, если соответствующие последовательности досок заборов совпадают по всем трем параметрам (длина, ширина, древесина), в противном случае заборы различны". И авторское решение также отвечает 4. Также можно посмотреть на 3-й претест из условия. Динамика, не учитывающая этого нюанса отвечает 20, правильное же решение — 16.

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

    А откуда информация, что авторское решение отвечает 4? Из неудачного взлома?

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

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

      Отправлял. Не ответили. А про контест — я, после того, как это обнаружил, как-то забыл, что он был перенесен на 10 минут.

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

    может лучше написать вопрос авторам а не сюда?

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

      писал.

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

        Мы не можем давать ответы на такие вопросы. Это дало бы вам дополнительный пример входных-выходных данных.

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

          Ну тогда поясните хоть сейчас что имелось ввиду?

        • »
          »
          »
          »
          »
          14 лет назад, скрыть # ^ |
          ← Rev. 2  
          Проголосовать: нравится 0 Проголосовать: не нравится
          Два забора будем считать одинаковыми, если соответствующие последовательности типов древесины досок заборов совпадают, в противном случае заборы различны.
          

          Тогда поясните, ошибка в условии или в решении?

          И вопрос вдогонку: как решать Е с текущим условием?

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

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

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

              Я написал два решения. Одно — неправильное — проходит претесты, про полные тесты пока неизвестно. Правильное не проходит 3-й претест, потому что у авторов ответ 20, а правильный — 16.

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

            Ну, я вообще не так понял и решал другую задачу; но я так подумал, что можно посчитать обычные способы и потом отнять повторяющиеся по этому условию. Такими могут быть только те, которые составлены из блоков одинакового размера. А там получается что=то вроде x·(n - 1)!·n способов, если можем поставить x одинаковых, а типов таких досок — n.

            UPD: Упс, неправда; на самом деле n·(n - 1)x - 1.

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

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

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

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

    p.s. А вообще условие очень муторное, особенно если стараться понять легенду)))

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

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

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

    Меня такое определение тоже сконфузило...

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

Unable to ask questions. Getting "Field should not contain more than 1,000 characters" when the question is much shorter than that.

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

На чем валили D?

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

    На много чем. Люди забывали, что делители не только должны быть одинаковой длины, но и совпадать (aa, bb), что делится надо нацело (aba, aba), ну и еще какие-то мелочи

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

Понравился ли вам этот контест???

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

Почему ответ на тесте 3 5 2 3 2 3 2 3 - 12 а не 6

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

Ох и плохо будет мне, если упадёт А.... ;)

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

Ну что ж.. Расскажите мне, пожалуйста, кто-нибудь, как пишется динамика в Е, а то я так и не придумал :(

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

    У меня f[i][j][k] — i — последний вид древесины, j — текущая длина забора, k — текущая ширина. Персчет, думаю, очевиден.

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

      Я брал такую же динамику, но вот как раз-таки пересчет мне не был очевиден, не объясните ли?

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

        f[i][j][b[i]] сумма всех f[t][j — a[i]][a[i]], где 0 < t <= n, t != i; Для улучшения асимптотики храним se[i][j][k] — сумму всех f[t][j][k], где 0 < t <= n, t != i. Затем меняем местами a[i] и b[i] и повторяем данную операцию.

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

    Я писал так — d(i, j, k) — колличество способов сделать забор длины i так, чтобы последняя доска была типа j, причём k = 0, если она не перевёрнута. O(l * n^2).

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

      А пересчет как?

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

        Перебираем длины заборов, для каждой фиксированой длины попробуем закончить забор такой длины доской каждого типа. Для фиксированого типа доски мы отберем все типы досок, которые могут предварять этот тип, и увеличим ответ. Кроме того, нужно аккуратно обрабатывать доски, в которых ширина равна длине, можно всегда считать, что d[i][j][1] = 0.

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

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

Может кто-нибудь подсказать, что за коварный 15 претест на С? так и не преодолел его (

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

Условия непонятное. Не хрена не понял.

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +19 Проголосовать: не нравится

Unsuccessful challenge on problem E:

Input: 2 4

1 3

1 3

Output: 4

Answer: 4

How the answer is 4? It should be 2.

1) #1, rev#2

2) #2, rev#1

I asked a lot of questions during contest and got answers that for example (#1, rev#2) and (rev#1, #2) are same variants. In that case the answer should be 2 for the case above.

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

In problem E.
What is the answer for the input (2 3 1 2 1 2) ?
There are 4 sequence of fences.
seq0 : fence[0] -> turn(fence[1]).
seq1 : turn(fence[0]) -> fence[1].
seq2 : fence[1] -> turn(fence[0]).
seq3 : turn(fence[1]) -> fence[0].
But seq0 and seq1 are same, And seq2 and seq3 are same too.
So I think it is 2.
But if so, the answer for sample3 is 18 not 20.

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

    Same issue for me :) Spent 1 hour on discussions with jury

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

    I'm surprising when my not-finished solution passed examples(as well as the pre-tests). That is the same question. The admin's reply is just:

    "I can only say, that rotation of the board does NOT change its type. So sequences with same boards but with different rotations are same."

    So I don't know what is wrong: the standard solution, the statement or my understanding?

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

Второй раз подряд пишу почти правильное решение и нахожу недочет за 5 минут до конца контеста :(. На этот раз так получилось с С.

»
14 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится -6 Проголосовать: не нравится

Problem C: Many people have wrong answer with pretest #15 (include me). Good pretest :D

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

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

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

Как в первом семпле в задаче А получается 19? Ведь есть же путь A -> 1 -> 2 -> 3 -> B длины 1 + 4 + 1 + 4 + 2 + 4 + 1 == 17

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

[upd: sorry for asking the same questions other people already did. I typed the question at the same time.]

I have a question about problem E. Consider this test case: 2 3 1 2 1 2 Considering that "Two fences shall be considered the same if the corresponding sequences of fence boards' types are the same", I think the answer should be 2 — a fence with board types A and B ((1,2),(2,1)) and another with types B and A (also ((1,2),(2,1))), where A and B are the two given types of fences. ((2,1),(1,2)) would be equal to one of these solutions, since only the type (and not the rotations) are considered during comparation.

However, according to an unsucefull hack attempt, the answer is 4. I asked it during the contest, and they said that a fence with types (A,B,A) and (B,A,B) is also valid, but I can't figure out how it's possible with fence lenght 3... Can somebody? Thanks!

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

Почему мой говнокод вечно проходит претесты :(

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

I took a look at the last example case and "deduced" that rotation also matters in the sequence comparison... I was getting WA locally for a long time, because that was not so clear from the problem statement, but I finally got it when there were about 10-15 minutes left; otherwise, I could have gotten C I think, using BIT :(

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

I took a look at the last example case and “deduced” that rotation also matters in the sequence comparison… I was getting WA locally for a long time, because that was not so clear from the problem statement, but I finally got it when there were about 10-15 minutes left; otherwise, I could have gotten C I think, using BIT :(

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

Does anybody know the solution to the Problem C? I try to use the Red Black Tree, but my answer is wrong..

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

Авторского разбора контеста ждать?

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

on a separate note, why isn't the system test starting?? [NOTE: I said this at the time when the blog did not contain the update; don't get this wrong :)]

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

а как решалось D?

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

Контест то что надо, правда без авторских ошибок было бы на много лучше !!!

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

Как-то долго систесты не начинаются...

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

Как можно решить задачу 182B - Календарь Васи?

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

Как мы можем решить 182D - Общие делители?

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

UPD: к сожалению обнаружена ошибка в авторском решении по задаче 182E — Деревянный забор, ситуация будет исправлена как можно скорее, приносим участникам свои извинения

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

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

Бага в текущем положении. Моя задача D сейчас показана как упавшая, хотя до ее тестирования еще далеко. (она у меня была поломана и отправлена ближе к концу контеста).

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

system testing is in progress... what's admins final decision?

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

Я, конечно, в контесте налажал, и, скорее всего, получил бы минус к рейтингу, но все равно жаль, что нерейтинговый контест(

»
14 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится +1 Проголосовать: не нравится

Капец, так хорошо написал и тут вдруг: UPD2: контест объявлен нерейтинговым.Нет слов!

UPD1: А в чём причина хоть? 
UPD2:'Условие задачи было сформулировано неверно, что привело к несоответствию решений, правильный вариант условия появится совсем скоро, приносим участникам свои извинения.'
»
14 лет назад, скрыть # |
 
Проголосовать: нравится -26 Проголосовать: не нравится

да что ж такое, все никак cf не начнет стабильно хорошо делать контесты(

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

I didn't consider to types of board, just i checked rotation of square board with same type shouldn't count twice, and got Accepted! I think something is wrong yet.

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

Прощай мечта стать синим до следующего контеста !

»
14 лет назад, скрыть # |
← Rev. 6  
Проголосовать: нравится 0 Проголосовать: не нравится

My comment was wrong, sorry...

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

Может для подобных случаев сделать опрос среди участников? или бредовая идея?

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

Whats case 15 in Problem C?

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

Обидно, что так получилось с Е все-таки.

Приношу авторам контеста свои извинения за, возможно, некоторую резкость.

Большое спасибо за контест. В целом, он, скорее, всё же понравился.

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

Был интересный контест.Жаль что я не сделал Д только по тому што думал што ето решение с поиском делителей долго работает.

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

spending my time from 22.00 — 02.00 waiting the systest while I have mid test in the next day and the contest end with unrated. . what a pitty. .

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

Comment deleted after a bit of thought, for more details read my reply 2 branches down this comment :)

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

How did so many manage to solve E during the competition? It only passes if you make the same mistakes as the author; the answer to the first test case should be 3 since the second board lying down is a beautiful fence as well. You can see on the second test case that just having one board is okay.

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

Very old blog, but incase someone is stuck on problem C like I was, the idea is to maintain a set of K maximums using two sets.