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

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

Всем привет!

Совсем скоро, 10 марта в 19:30 MSK состоится Codeforces Round #235 (Div. 2), автором которого являюсь я. Это мой первый раунд, где я выступаю в качестве автора, и я надеюсь что не последний.

Хотелось бы сказать отдельное спасибо Геральду Агапову (Gerald) за огромную помощь в подготовке этого раунда, так же Роману Рубаненко (Rubanenko) и Сергею Орышичу (Oryshych) за помощь в тестировании задач, а Марии Беловой за перевод условий на английский.

Желаю Вам получить удовольствие от решения задач и вынести с этого раунда для себя что-то полезное:)

Разбалловка раунда: 500-1000-1500-2000-2500

GL & HF!

Первая пятерка:

  1. UESTC_XHXJ

  2. GoodByeAhu

  3. OrzSKYDEC

  4. simonlindholm

  5. angelyue

Так же хочу отметить участника hoanglmdiv2, единственного из Див 2, кто решил задачу Е.

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

Разбор на русском

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

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

Hope your last (Div. 2) only contest!

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

Good luck with you first round.

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

А где же традиционное "Большое спасибо Михаилу Мирзаянову (MikeMirzayanov) за превосходную систему."

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

Daylight saving time begins... contest is one hour later than usual in my area : )

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

Я думаю твой контест будет очень интересным!

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

I think your contest will be very interesting!

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

Удачи!)

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

It's impossible to register out-of-competition.

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

Я тоже не могу зарегистрироваться вне конкурса

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

    Надеюсь, это баги после восстановления, а не фишка этого контеста.

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

div2 only.....what a pity..

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

Сколько будет хот-дог фотона если килограмм света ночью ...

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

Bugs or new rules ? I can't take part in it out-of-competition.

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

всем удачного контеста!

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

The time is too late.

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

    if ur really dedicated, then u will participate no matter what the time and place!

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

"получить удовольствие от решение задач" — исправьте, пожалуйста.

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

hope out from newbie.

:D

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

А сайт снова нестабилен...

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

hope , you will arrange more div1 cntests B|

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

The contest hasn't start yet, but server is already unavailable :)

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

For problem C, if multiple such sequences are possible, can we print any of them?

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

    Yes, but i advice you to use such a function as "Ask a question" :)

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

А это норма, что вывод 2*(10^6) чисел на FreePascal, занимает 2.9 секунды?

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

    у меня такая же проблема. я не знаю что делать =(

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

      используй компилятор делфи

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

        я переотправил. претесты пройдены. посмотрим. но я в логе видел что ее ктото там сдал и на FPC... интересно как?)

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

      писать на с++

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

        А можете ответить конкретно почему такое может быть, что просто цикл до 10 в 6 выводящий единички работает больше секунды?

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

          не могу, но могу лишь по опыту спросить, используете ли uses sysutils?

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

            нет

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

            а разве uses sysutils как то влияет на время работы?

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

              вроде считывание/вывод становится быстрее

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

                я проверил только что переотослал с sysutils. всеравно TL 11... а вот на контесте на делфи прошло...

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

    Потерял из-за этого 100 баллов.

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

      а я, пытаясь оптимизировать потерял 200) ну ладно.. в следующий раз поднимусь) это же не USACO которое 6 раз в год только проходит=)

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

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

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

    http://codeforces.com/contest/401/submission/5985042 только обьясните пожалуйста почему много много раз st:=st+'110' и потом один вывод лучше чем просто много выводов?

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

      так быстрее

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

        но насколько я знаю st:=st+'110' работает за длину(st)+длину('110')... или меня обманули? (имеется ввиду в паскале)

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

          ты б еще на ассемблере написал, лол

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

            однако, это не решает вопрос...

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

My solution was hacked, but didn't change color to red in the table. Did anyone have the same problem?

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

What's pretest #4 for E?

I spend lots of time to pass that test and haven't make it during the contest.

E is a very nice problem by the way.

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

Походу слишком много форы вам дал( В следующий раз не буду проявлять жалость к див2!

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

what is the idea of problem D?

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

    I thought of a DP : (2^18)x(18)x(100) but obviously will fail x/

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

      Why fail? Actually it works well. 5978987 — AC in 1.637.

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

        Getting TLE on 38 :(, Submission link

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

          I managed to update your solution a little bit, so it passed TL: 5990582 and then 5990630.

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

            i didnt understand, why is some people need divide it by the factorial of sums each number, and while others isnt

            my old code got tle too http://codeforces.com/contest/401/submission/6011014

            then i tried just need use 1 array, separating value of old array and new array with the numbers of bits that's on

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

              Depends on whether your DP takes care of identical digits in the same level or not ..

              for test case 2, n = 223, it has 6 possible permutations, however it has 3 distinct numbers only.

              Therefore, if you make sure not to take duplicate numbers into consideration, you won't need to divide by sum of factorials. Otherwise you do.

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

                yes, that's what i thought too, but i failed to find in their code how is they managed to do it

                for example, like the code commented below, http://codeforces.com/contest/401/submission/5984009

                i just didnt see the part which is take care of leading zero, or duplicate numbers

                maybe i need much more training reading others code

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

                  I haven't understood the whole code, but he handles that, by the fact that he only loops from (0-9) each time he makes the update on his current state of DP. And as for the Leading zero, I believe it's handled somehow using the bool lz ..

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

        Dammit :\

        5990127

        Did not expect a ~10^9 solution to pass. Wasted 15 mins to find optimisations to bring it under ~10^8

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

          You may use CUSTOM INVOCATION to test execution time of your solution, if you are not sure. Just have to choose realy "worst case". For example, my friend failed this problem today, because he tested on 112233445566778899 100 and it worked well — but m=100 isn't worst case for this problem, 'cause with it most states can't be reached — some large prime like 97 will give much harder case.

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

    dp[i0][i1][i2][i3][i4][i5][i6][i7][i8][i9][r] = the number of ways to use i[j] j' to form a number without leading zero and mod m = r

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

      dp with 11 dimensions? I like it.

      Also, look at 5988053... It's realy nice one.

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

      I tried your solution but recursively the problem i faced is how i can dynamically create a global array (array with variable like your local one ). do you have a solution for that

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

        check my submission [submission:http://codeforces.com/contest/401/submission/5984009]

        using g++ you can do this:

        int n;
        cin>>n;
        int a[n];
        
  • »
    »
    10 лет назад, # ^ |
    Rev. 5   Проголосовать: нравится -8 Проголосовать: не нравится

    dp[mask][k] = amount of close numbers to n such that they are compound by digits of n that appears in mask, and are congruent k with m. Complexity is 2 ^ 18 * 10 * 100. 5987971

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

When will ratings be updated ???

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

is it just me, or had this blog post suddenly disappeared for about 5-10 minutes? i didn't see it in the home page nor in the recent actions tab (both simple and detailed)!

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

Round Statistics
P.S. Hacks stats will be published after hacks page become available.

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

I think people in china can't connect to codeforces.com without goagent anymore after this contest......

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

Здравствуйте, не могу понять задачу B (конкретней, тест №6). Если заполнить на этом тесте массив, то получаю 002021(2) 0 — неизвестно, 1 — Div1, 2 — Div2, в скобках — текущее значение. Максимальное кол-во Div2 max = 3(каждый раз проводить Div2), а при подсчете минимума у меня получается следующее: 212121(2), то есть min = 1 (правильный ответ = 2). Подскажите, что я упускаю. Спасибо

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

    Ты упускаешь АС

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

    Про контест с ID = 3 нам известно, что он был Div2-оnly, то есть контест с ID = 4 точно не мог быть Div1 и точно был Div2.

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

GoodByeAhu

Registered 7 hours ago

XiJinping

Registered 12 hours ago

OrzSKYDEC

Registered 4 days ago

Isn't it strange?

All of them are unrated and registered a few days ago.

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

@Egor, @Author I don't understand, why questions B and C were so easy, also they needed implementation only I think, C was easier than B.

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

Our great president XiJinping has taken part in this round and did a good job (rank1 in unofficial). But now I cannot find him:-)

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

Problem C (div 2) should contain algorithmic problems. Problems A and B are sufficient to test implementation, simulation or simple maths.

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

    Can you please explain me the rating system used in code forces. I participated in div2 round:235 and solved first problem successfully and submitted a wrong answer for second problem . My rating before the contest was 1410 and now it has been decreased to 1318. Can you please explain this because I think my rating should have increased!! Thanks in advance.

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

TOP-4 (2, 3, 4, 5 places) were unrated and registred some hours ago... :(

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

Спасибо за задачу "C" с её несильными претестами! Было интересно искать ошибки у соперников.

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

    ну давай, найди баг в этом решении 5980288, не смотря на тест, на котором упало)

    когда увидел тест -- ржал)

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

      Наверника тест — X+1, X. Напр. 2 1. Печатает на "01" больше.

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

        угу, именно)

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

          Знакомо. Во время контеста я отослал программу с именно этим багом. А как начал искать ошибки у других, играл с разными тестами, и нашел ошибку у себя :) . Жалко потери в 17 минут.

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

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

            В чертогах разума их исходники открывал? Или имелось ввиду что-то вроде "придумывал возможные ошибки, которые надо будет поискать после блокировки"?

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

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

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

Problem E is from a past USACO gold contest. Problem statement

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

Это был отличный контест, спасибо за труд:D

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

for problem 235A ,my code is showing different answer on ideone and different answer on compiler of codeforce...why is it so?? link for my code http://codeforces.com/contest/401/submission/6013925