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

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

Привет всем! Я автор задач сегодняшнего раунда. Меня зовут Артур, я учусь в лицее №31 города Челябинска.

Благодарю Gerald за координацию подготовки контеста, Delinur за перевод условий, MikeMirzayanov за замечательную систему, dolphinigle за прорешивание контеста, вычитывание условий и множество ценных советов, fdoer, grey_wind, Skird и alger95 за помощь в придумывании задач.

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

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

UPD: Разбалловка следующая:

В первом дивизионе: 500-1000-2000-2000-2500.

Во втором дивизионе: 500-1000-1500-2000-3000.

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

Поздравляю победителей, особенно решивших задачу D.

Div1:

  1. Petr
  2. tourist
  3. yeputons
  4. peter50216
  5. aram90

Div2:

  1. lucien
  2. tomasz.kociumaka
  3. sjynoi
  4. DimaPhil
  • Проголосовать: нравится
  • +367
  • Проголосовать: не нравится

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

How can I register as virtual contestant?

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

А в письме про раунды они по прежнему beta:

Формально будет проведено два раунда: "Codeforces Beta Round #122 (Div. 1)" и "Codeforces Beta Round #122 (Div. 2)".

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

Wow, dolphinigle as the tester? I would expect clear problem statements and a stable, rated round then :)

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

the contest will be interesting if the scores for tasks are unusual. And I hope the contest be rated.

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

Ну так какая все-таки разбалловка?

P.S. Уже добавили, спасибо.

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

And the score distribution is... :-?

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

Can anyone give me a formula that can count new rating? Thanks very much. :-)

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

Закончилось... На чем С(div 2) ломали?

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

в C у всех Гаусс?

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

    Можно было руками решить систему из трёх уравнений, не?

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

    WolframAlpha же

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

    Хех, а как Гауссом? Там же недоопределённая система, и надо в целых числах и что-то минимизировать — т.е. искать целую точку на гиперплоскости, минимизирующую какой-то функционал....

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

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

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

      Я писал, добавляя еще одно уравнение на сумму, собственно перебирая ее. Не успел отдебагать. Кстати, ЛНЗ уравнений в моей системе вообще верный факт? Похоже, что верный)
      P.S. как можно было посеять столько багов?! О_о сдал после часа мучений..

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

      У меня сначала гаусс в целых числах, выражающий 6 перемнных через седьмую, свободную, потом перебор значения свободной (от 0 до 100 тысяч). Чтобы обойтись без дробных результатов делений, перед вычитанием строк домножаю обе строки, чтобы в ведущем столбце оказалось LCM. Правда, на самом деле там получаются максимум двойки.

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

        Может я чего не понимаю? Почему нельзя сказать, что нулевая строка принудительно состоит из 'a'. Тогда сразу мы знаем количество букв 'b' в первой, второй и третьей.

        Также мы знаем, сколько 'b'шек в пересечении каждых двух из них. Казалось бы, теперь нужно всего лишь оптимально уложить 'b'-шки в строчках, это делается за один цикл. Что я упустил?

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

          Я решал именно так (и в итоге зашла), но но за один цикл уложить b-шки у меня не получилось: например, для теста из примера существует еще такой ответ:

          aaaaaaaa
          bbbbaaaa
          aabbbbaa
          aabbaabb

          Так что там все-таки нужно делать один перебор внутри.

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

            Как делал я (можно посмотреть сюда: 1757176). Я нашёл количество общих 'b'-шки у первой и второй строки (нумерация с нуля!). Пусть их q штук. Пусть в первой строке оставшихся 'b'-шек — p штук, во второй — r штук. Говорю, что вид первых трёх строк определён однозначно.

            <--p--><-q-><---r---><--t-->
            aaaaaaaaaaaaaaaaaaaaaaaaaaaa
            bbbbbbbbbbbbaaaaaaaaaaaaaaaa
            aaaaaaabbbbbbbbbbbbbbaaaaaaa
            

            Переберём значение параметра t в порядке возрастания — это сколько 'b'-шек из третьей строки не пересекаются ни с 'b'-шками первой, ни с 'b'-шками второй. Дальше обозначил за x, y, z количества 'b'-шек третьей строки соответственно в p, q и r-секции, составилось уравнение относительно трёх переменных и параметра t в духе:

            x + y + z = cnt3 - t

            x + (q - y) + (r - z) = A23 - t

            (p - x) + (q - y) + r = A13 - t

            где cnt3 — количество 'b'-шек в третьей строке, A — матрица расстояний по хэммингу. Решили её, проверили, что x, y, z имеют приличные значения. Как только для какого-то t всё сошлось, выводим ответ и умираем.

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

    Нет, у меня какая-то ботва с перебором одного параметра внутри, сложность O(длины ответа). Посмотрим, зайдет или нет...

    UPD: зашла

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

Неет... Пары минут не хватило на отправить E :-(

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

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

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

D клевая! С нетерпением жду разбора, час голову ломал.

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

So what is the observation that solves B?

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

А почему на сайте не поддерживается Python>=3.0?

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

Where/How do I report cheaters?

Check out this 2 guys codes for problem A:

http://mirror.codeforces.com/contest/193/submission/1756318

http://mirror.codeforces.com/contest/193/submission/1756337

Its the same code, they are both from the same country and they submitted at the same time..

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

как решать B (Div 1)?

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

    Заметим, что не имеет смысла делать более 2 подряд операций ксора, так как 2 операции — это исходный массив, 3 — операции — это одна и так далее. Делаем тупой перебор, в котором параметры сколько операций сделано, и правда ли то, что последняя сделанная ксор. Проверяем, если осталось четное число, то пытаемся заполнить их ксором, и далее по алгоритму. Таких комбинаций не более FIB(31), что около полутора миллионов.

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

      Иногда выгодно много раз ксорить, т.к. иначе ответ ухудшается.

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

        в смысле? Если это между двумя периодами операций второго рода, то тоже самое, или 0 раз, или 1, потому что оставшиеся ксоры мы тупо в конец пихать можем, разве нет?

        UPD1761428 — AC

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

      а откуда информация про fib(31) есть теория о которой я не знаю?

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

        Выпишите время работы как функцию от n. Получится f(n) = f(n - 1) + f(n - 2): либо мы сейчас делаем перестановку, либо ксор, а потом сразу же перестановку. Поэтому получаются числа Фибоначчи.

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

        Или же посчитаем число нужных нам масок

        f(i, 0) — число хороших масок длины i, заканчивающихся на 0, аналогично f(i, 1)

        f(i + 1, 1) = f(i, 1) + f(i, 0)

        f(i + 1,0) = f(i, 1)

        f(u, 1) = FIB(u)

        f(u, 0) = FIB(u — 1)

        total = f(u, 1)+ f(u,0) = FIB(u) + FIB(u — 1) = FIB(u + 1)

        MAX_U = 30

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

        Представь себе, есть теория, о которой ты не знаешь.

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

    В предыдущей правке идейно неправильное ДП. Конечно, только перебор.

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

Соревнование очень понравилось. Не удивился, когда увидел, что задачи готовил школьник: ничего заумно-теоретически-скучного, от задач веет чем-то живым. В общем, как сейчас модно говорить, "аффтар пеши исчо!" =) (а вот сложность задач можно немного снизить)

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

Its only 8 minutes after the end of the contest and the system test for DIV-2 has completed 77% ... Blazing fast :)

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

Nice problemset. Hard, but fun :)

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

Отличный контест! Авторам спасибо! Когда разборов ждать?

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

Чудной контест вышел, необычный.

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

Красивые, необычные задачи. Контест очень понравился.

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

Отличный челендж-контест

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

Подскажите, пожалуйста, где я набагал в B(div 1)...1761150 А то не могу найти баг...Наверное, какой-то мелкий и идиотский. Заранее спасибо.

UPD: спасибо за помощь, проблема решена.

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

Отличный контест, интересные идейные задачи с несложной реализацией. Спасибо tunyash!

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

Hi guys, I solved problem for the first time (in 2 participation) and my rating decreased as for the time I do not solve any problem. Is it normal ? Thanks for the contest,

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

Really enjoyable and challenging contest. I could've done much better, but I still had lots of fun doing it and it's all that matters. Congratulations to the organizer!

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

Спасибо за контест!

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

I like the problem E in Div 2.

Any idea how to solve this equation?

  k1 * [ 0; 0; 1; 0; 1; 1 ]
+ k2 * [ 0; 1; 0; 1; 0; 1 ]
+ k3 * [ 0; 1; 1; 1; 1; 0 ]
+ k4 * [ 1; 0; 0; 1; 1; 1 ]
+ k5 * [ 1; 0; 1; 1; 0; 1 ]
+ k6 * [ 1; 1; 0; 0; 1; 1 ]
+ k7 * [ 1; 1; 1; 0; 0; 0 ]
===========================
       [ a; b; c; d; e; f ]

I thought that queue is too slow for this, but only "trick" (I do not know if it's working — if it is enough) is the one from statement — we can combine 6 combination to get [ 4; 4; 4; 4; 4; 4 ]...

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

Эх, а я после 20-минутного ступора над A решил воспользоваться методикой Петра. В то же время как B минут за 10-15 можно было спокойно написать...

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

Great contest ... analytical problem set and clear statement ... really enjoyble .... and thtz the spirit of CodeForces ... :)

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

a really great contest. thanks for bringing such a great time to us. of course the problems were hard. :D

I hope there will be an editorial for this round too.

thanks again.

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

Спасибо за контест. Мне кажется что из условия задачи C (div.2), не совсем очевидно что на тест 1 2 ## надо выводить -1 (меня на этом взломали).

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

    В условии написано, что пустое множество и мн-во из одного элемента связны. Значит, что бы мы не удалили из набора, множество останется связным. Получается -1. Все было в условии.

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

      Значит я туплю.. извиняюсь.

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

      Вообще хотя бы простейший случай с -1 (как выше — 1 2 ##) следовало включить в претесты, чтобы лишние вопросы у участников не возникали. То же, кстати, и по задаче C.

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

        В претестах был тест в одним #. А что было в задаче С?

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

          Тьфу, прошу прощения, не в претесты, а в примеры. В задаче C то же самое — странно не найти в примерах к задаче, в которой тесты с отсутствием решения встречаются чаще, чем с его наличием, примера с ответом -1.

          Замечание, конечно, несущественное, и совсем не портит впечатления от этого замечательного контеста, но все же...

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

          Зато не было ни одного теста с 1, где точки есть хотя бы в 2 строчках.

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

Челябинские контесты настолько суровы, что даже Гена решает там 3 из 5.

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

    Но успевает сломать 18 участников :-)

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

    Гену подвело стремление к первому месту, а для этого надо было, как минимум, успеть и наломать, и сдать Е. Наломать он успел, а на Е не хватило, буквально, 10 сек. Правда, как в итоге выяснилось, это не имело значения.

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

can u explain me how to solve the problem 194B? thanks so much :)

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

So where is the English editoral?

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

I`m 204th coder in ranking, but my profile shows I got 206th.

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

Куда делись условия задач?
UPD. Все, исправили.

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

Why does it say "Statement is not available." when I try to access a problem statement from this contest?

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

пожалуйста помогите у меня проблема в задаче 193А посылка номер:1771411 . На моем компе все работает но когда я посылаю задачу на проверку выходит СЕ.

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

    Попойму на codeforces нельзя изменять значение функции. Ну т.е нужно создать дополнительную переменную и в конце функции, ей присвоить значение переменной! UPD: вот исправил твою посылку 1771428, зашло!