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

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

Всем привет!

Codeforces Round #259 (Div. 1 and Div. 2) начнется 1-го августа, в 19:30 по московскому времени.

Авторы задач: sevenkplus, xlk и я.

Тестеры: vfleaking, GuyUpLion, ztxz16 , CMHJT и Trinitrophenol.

Спасибо Gerald за его советы в процессе подготовки задач. А также огромная благодарность MikeMirzayanov и его команде за отличную платформу для проведения соревнований по программированию!

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

Twilight Sparkle является главным действующим героем сериала <<My Little Pony: Friendship Is Magic>>.

Twilight Sparkle — единорог женского пола. В третьем сезоне сериала она превратится в единорога с крыльями и станет принцессой. У нее есть красивая пометка в виде 6-конечной пурпурной звезды, под которой находится белая звезда. Около вершин пурпурной звезды находятся еще 5 маленьких белых звездочек.

Конечно, я гарантирую, что знание сюжетной линии сериала не требуется для решения задач.

UPD

Разбалловка для первого дивизиона: 500-1000-1500-2500-2500.

Разбалловка для второго дивизиона: 500-1000-1500-2000-2500.

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

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

Of course, we guarantee knowing those background storyline and setting won't help you to solve any of our problems.

A pedantic note: I think you should instead guarantee that not knowing the setting won't hold you back from solving these problems. The reason is knowing this particular background might bring to your life some friendship which -- as we all know -- is magic. And noone should doubt that magic can help them solve tough problems.

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

I hope it will help me :3

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

уи..поняши!:3

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

Wait, just one pwny? You guys haven't figured out how to stack pwnies like how you stack cows yet?

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

I won't solve these tasks if Rarity doesn't appear.

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

Python will help me.

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

why not 21:00 start?

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

Oh yes!! There seems to be MLP FiM problem set!

I'm looking forward to compete this round as Equestrian (see my profile).

I'm waiting for The Wonderbolt characters' problem...

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

Most recent Div.1 CF Round authors are from China. Chinese people seem to have many ideas to write problems :)

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

А Твайлайт умеет программировать? И если да, то на каком языке? :)

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

I believe this round will be very wonderful. I can't wait to join the round. MinakoKojima, you are my idol..(^ω^)

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

orzzz! Have got ready to become green again...

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

It would be so great if start time of this Chinese-author round were to changed earlier to usual Chinese round time 21:00.

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

Firstly — next Chinese contest, secondly — brony contest. Gotta get outta from here xD. I won't be surprised if I see 5x3000 pts :D.

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

My daughter loves Twilight Sparkle. Every night I have to watch My Little Pony with her. I hope to get a good result in this round. I would like to show to my little daughter that my name has the same color of her Twilight Sparkle.

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

Good luck & AC for fun!

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

Going to participate in the Div. 1 contest for the first time! Want to have a good experience! May the Almighty help me and all thanks goes to him!

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

It seem to appear problems as "the one that don't know ******(an algorithm name) will FST!"

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

I think Chinese problem setters are supposed to adjust the start time to fit Chinese participants even if only in one round.

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

It's typical Chinese Round! God bless us.

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

Why can't I register for Codeforces Round #259 (Div. 1)?

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

Chinese round again... but why not 17:00 MSK T_T

Btw I hope I can improve my rank to CM after this contest :D

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

It seems that setter xlk and tester GuyUpLion are the same person.

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

Thanks MinakoKojima , xlk & sevenkplus for arranging the round. We hope more DIV1 rounds from you :)

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

Thank you for spoilers about 3rd season in announce =/

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

MLP

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

if there was not any xiaodao in the world, it would be "Codeforces Round #59" you are maker of half of my contest life:P

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

Hope me can finish 2 problems in this round!

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

Delinur в отпуске? :)

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

i just registered for this contest, and guess what i saw!
i think these three accounts are all the same person, and if found out they should be banned!
EDIT: it appears that the "real account" of this person has commented on OP about 10 minutes ago.

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

Извеняюсь за вопрос а эта строчка егодня вам придется посетить Equestria и помочь очень дружелюбной принцессе, Twilight Sparkle, решить несколько задачек. такая и должна быть?

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

    А что не так? Сегодня вы посетите Equestria и поможете решить несколько задачек очень дружелюбной принцессе по имени Twilight Sparkle

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

I don't take medicine today,so I feel that my name is green QAQ I hope I can solve one problem designed by Chinese

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

I think that it's the first codeforces round which tested by gray coder))

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

Trinitrophenol — тестер от Бога!

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

tourist is the last registrant, thereby marking his name for all to see in the next 3ish minutes.

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

До раунда: "Бро, сегодня зарешаю как всегда А и постараюсь впервые решить B и оранжевым стану".

Через час после начала: "Решил B... ага".

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

    То же самое...

    До раунда: "Надоело быть внизу рейтинга, помнишь, как ты три задачи решил за полчаса тогда? Стремись!". "Решил A.. Ура, решен и B! Надо решать теперь С". ** Через пять минут **. "Уведомление: извините, ваше решение по задаче B взломано :(". ** Чудом пересдал задачу, нашел и контртест **. "Ну блин, опять результат похерил, попробую хотя бы других участников по задаче B ломануть, помнишь, как ты тогда за пять минут трех участников взломал? Стремись!". ** Статистика взломов -11 : +2 **. "Ёперный театр! Ну ничего, книжки почитаю, потренируюсь, вот в следующий раз...".

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

      А я полтора часа пытался сделать что-нибудь по А (для тебя это С), а потом решил забить, ибо сдавать всё равно не было бы смысла. Зашло бы — ну круто 600+ место, минус рейтинг, не зашло — еще больший минус. А так хоть если не делаешь не одной посылки, то ничего не снимает.

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

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

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

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

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

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

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

            Палка о двух концах. С одной стороны, если точно уверен, что больше ничего бы не смог решить за полтора часа, и А решить тоже не смог бы, и повзламывать никого не смог бы — тогда, забив на контест, сэкономил время, чтобы не тратить его зря. С другой стороны, кто его знает, если была вероятность что-то решить (правильно или не совсем) — нас ведь учат никогда не сдаваться. Да и рейтинг придумали не только для того, чтобы радоваться его росту:) Если для тебя некоторые из div1 раундов слишком сложные, и ты не можешь там решить ничего полностью ни за полчаса, ни за целый контест, но ты будешь делать сабмиты в эти раундах и занимать далеко не лучшие места — то есть вероятность вернуться на некоторое время в div2, который ты еще не совсем побил. Или, если уже побил, то на один раунд, в котором ты докажешь всем, что получилось недоразумение:)

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

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

I am going to sleep. Remaining problems is very hard.

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

Awesome contest!! Thanks MinakoKojima , sevenkplus and xlk :D

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

Что такое математическое ожидание?

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

    Ссылка из условия задачи не помогла?

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

      Нет — можете простыми словами объяснить?

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

        среднее значение случайной величины

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

        Честно говоря, трудно сказать проще, чем написано в первой строке по ссылке, но давайте попробуем. Пусть есть случайная величина x, она может принимать значение xk с вероятностью pk. Тогда матожидание значения x это сумма произведений xk на pk. По сути, матожидание это то самое среднее значение, которое получается при достаточном количестве "бросков" этой случайной величины.

        То же самое, записанное нормально: , когда x может принимать n различных значений.

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

        Пусть у вас есть какое-то испытание. В данном испытании выпадают случайные значения {x1, x2, ..., xn}, с соотвествующими вероятностями {p1, p2, ..., pn}.

        Тогда мат. ожидание есть: .

        Интуитивное объяснение. Представьте что мы провели m испытаний, и засекли сколько раз, какое значение выпало. Пусть xi выпало ki раз. Посчитаем среднее значение. . При большом количестве испытаний стремится к pi. Таким образом получаем формулу математического ожидания.

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

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

    А ничего, что есть ссылка на Википедию?

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

how to solve Div-1 B?

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

Found few people in my room who used this for solution of Div1 A : pow ( m, n ). Instant hack with test case ( 100000, 100000 ) :p That really boosted my ranking :D

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

Умение составлять сбалансированные проблемсеты у китайцев в крови:)

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

в Б кто-нибудь еще так делал??? dp[i][mask][last]: i = префикс, mask = маска взятых простых от 2 до 31, k = к-ое простое по счету начиная с 37?

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

    Я просто маску простых до 60 считал, в таком случае, k-ое простое, кажется, не нужно.

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

      ой, я насчитал, что простых до 60 20 штук, и 100 * 2^20 = 400 MB. OMG Из-за этого думал как сократить память и фигню эту написал.

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

        Это нормально заходит в ML и при 20 простых, разве нет? Достаточно держать текущий слой динамики и всю таблицу предков для восстановления ответа. Текущий слой — это 2^20 (ладно, для максимального удобства еще на 4 и на 2, получаем 8 мб), предки — 100*2^20 char'ов, еще 100 мб. В сумме даже меньше половины МL.

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

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

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

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

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

    Можно last не хранить в параметре, если динамикой сначала добавить все числа <= 30, а остальные выбирать жадно.

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

Thank you for the contest and for the great tasks!

If I would give feedback on the tasks, I would say that I disliked that the graph is not guaranteed to be connected in Div1 C/Div2 E. This, in my opinion, was a restriction with a single purpose in mind — let's invent some edge cases, which is the purpose I heavily dislike. If the graph is connected, there are no edge cases at all (and it is always possible to construct a path). Now, because this is not guaranteed, I had to add a bunch of "edge case" code — find out which vertex to start DFS from (rather than starting from any with single component), check if there is only 1 connected component etc. With a single component I felt that the task actually had short and clean solution in code. Was it really necessary to do this?

Furthermore, because the authors didn't include any test with answer -1 in pretests, I had wasted an hour worth of points before someone hacked me and I found the lack of outputing -1 in my code. Sure, this is completely my fault. But one of the point of pretests is to check the format of the output (like if there are mutiple possible string outputs — have them all in pretests), and in this case -1 was never tested. Is it fair to penalize people who accidently mistyped this constant?

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

    Sorry for that, acknowledged.

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

    Furthermore, because the authors didn't include any test with answer -1 in pretests,

    Wait, what?

    I don't mind the possible disconnectedness, especially because the "if there's no answer" in the statement worked as a good hint, but the pretests definitely should've taken care of that. I also didn't really try hacking C because I thought the only special case was included in the pretests... I wonder how many people were in a similar situation.

    Well, as I said above: weaker pretests than usual. Although in a different way than I meant :D

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

      Yeah, I didn't paid too much attention to the hint "if there's no answer", because I see authors putting this in even if there is always solution, to hide that fact, because it might make the task easier.

      But to highlight my point about disconnectedness, here is the difference between my original code and the accepted version. Sure, it certainly doesn't make the task bad — I liked it very much, but this code was in my opinion unnecessary and brought nothing to the solution of the task except edge cases. Before the whole code was: read the graph, run DFS, output the answer. Now we have extra steps: find the vertex to start from, check that there is no 1 in array after DFS.

      And yeah, there were different approaches to this problem, in which having unconnected graph only brought 1 line modification.

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

DIV1 A and DIV1B?

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

a

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

Task C is good, but I think it would be better to set that the input graph is connected. (The other part is not very interesting).

Task D is also good, but I think the TL is a bit tie. I managed to pass the pretest by code optimization.

Task E seems to be the harder version (force to do it online) of this task: http://hihocoder.com/contest/challenge1/problem/2

I think it is not a good idea to use it here since it has already used in previous contests. For example, since I know I can't even code solution for the eaiser task, I just skip this task and focus on D, it gives me some advantages.

Overall it is a good contest, thank you all writers and testers!

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

    C is by me. It would be a bit unnatural to constrain the graph to be connected. Also, Egor gets WA because of this. :D

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

      And this is why I disliked the absence of this restriction in the first place in the comment above. The whole idea in the solution is run on a single connected component, then you added unnatural expansion (unnatural to the solution rather than unnatural to the statement, and I probably don't even agree that this constraint in the statement is unnatural) to allow graphs to be not connected, so that there are now some edge cases/extra work to do. And as you wrote Egor failed because of this.

      Seems to me that you're pretty happy with that. I believe authors should be happy when people fail their task with a wrong solution, rather than solving it correctly and failing on the edge case. But maybe that's just me.

      Don't get me wrong, I still liked the task and the contest. As cgy4ever I just feel it could have been even better with that restriction.

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

        Sometimes we need to left something to hack, and sometimes we cover the tricky part by constraints or give such case in examples.

        For me, I only left it to hack if the task is very easy or a bit classic. If I'm the writer of this task, I will cover that trick cases, because this task itself is challenging, if someone get the solution but fail by that stupid trick then it is huge lost (Getting the solution is a challenging thing, so he should get points by this).

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

      actually, Egor's solution 7313057 failed on a much easier case than where answer was -1. :D (but you are right about graph not being connected)

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

      Every problem setters should maximize following fraction:

      Interesting
      -----------
      Frustrating
      

      To make problems better.

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

      Well, of course I should be more attentive to details, no doubt about this. But I always thought that it is just a good taste for problemsetter to include sample with answer "Impossible" or such if there is such case. I know that at the very least TopCoder requires a thing

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

    I know it is bad, that's why I put it in the middle night~ Princess Luna, can you hear me?

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

а можно как-нибудь челенжить такие сравнения в double? 7314095

или так складывать и сравнивать нормально?

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

Slowest system testing I've ever seen....only 4 submission are being judged at the same time!

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

Oh LOL, DIV2C/DIV1A was damn simple, and I messed it up %)

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

В B прошёл перебор с отсечениями по ответу и времени. 7318167

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

Good problems — 9/10

Having disconnected graph in C was not something to complain about

-1 because two very hard problems for a single match is too much

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

    I was right because I gave up and slept early.

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

    Honestly, I would disagree with the statement "very hard problems", at least with E. It was pretty complicated, I must say, but if you carefully broke down the problem into smaller ones, it became quite straightforward (i.e. no superclever observations and tricks were needed), although implementationally demanding. Of course, it is only my opinion :) And I didn't manage to find a (obvious) bug before the end of the contest, but still it was not "very hard".

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

I could find a way to find the expected number for div1 A but I couldn't implement it because I don't know how to avoid overflow my idea like this:

let prob[i] be the probability that the max number is i (for all i from 1 to M) then I compute the expected number.

let dp[i] be number of sequences with length N and every element between 1 and i and max number is i.

dp[i] = i^N-(sum(dp[j]) for every 1<=j<i)

then prob[i]=dp[i]/(M^N)

then expected number is sum(dp[i]*i) for every 1<=i<=M

But I couldn't implement it because I don't know how to avoid overflow of dp[i] and (M^N). is there anyway to implement this idea or I should search for another idea that is easy to implement?

Here is a code for my idea it works correctly for small tests.

This is not the first time that I encounter a probability problem that I could find a solution to solve it but I couldn't implement it.

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

"Twilight Sparkle — единорог женского пола. В третьем сезоне сериала она превратится в единорога с крыльями и станет принцессой."

Спойлер... не буду смотреть теперь...

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

my submission for problem E (Div 2) is giving WA on pretest 4.But when after the contest i tried the test case it's giving correct answer on my system as well as ideone.
This is the ideone link :- http://ideone.com/EWR4KA
my codeforces submission :- http://codeforces.me/contest/454/submission/7320400
can somebody tell me the reason behind it ??

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

Quite unfortunate that my Div1-B solution passed all pretests :'(

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

i saw a few AC submissions in my room for Div-1 A, which printed .
can anyone please provide a proof for this?

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

Div1-B, Nice problem!

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

For Div.2 problem B: http://codeforces.me/contest/454/problem/B My Submission: http://codeforces.me/contest/454/submission/7316030 It fails on pretest 6. If I'm right, here is an equivalent test: 5 4 1 2 3 5 How this array can be sorted using the given move? If my test is not equivalent, please update me with a correct one that I can trace. Thanks.

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

How to solve Div2-C ?

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

I try to hack 7313853 during contest with test case :

100000
100000 1 2 3 4 .... 99999

It checks all the states , with == operation for deque (99999 times for a 100000 size deque) ... My hacking of TLE was unsuccessful...

Now it has been TLE on case 41 , With a equal N , but using repetitive number 1...

Isn't it Weird ? I mean are we hacking Deep until STL Codes ? :D

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

    The == operator only has to look until it finds a single mismatch -- so for 99999 of those equality comparisons, it exited after looking at just the first element of both deques. The system test case was TLE because it had to look through all of those 1s before finding a mismatch :)

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

      Yes but i was not thinking of The STL implement, i thought its Linear so it should fail.

      I mean my testcase should do some hacks to make STL deque Linear in case of hacking this submission. It was a bit unusual for me.

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

    STL is evil in some way... Believe me, after IPSC 2014 there will be "HashSetKiller" programs, like already exist JavaQuickSortKiller!

    p.s. one problem in this year's IPSC is to hack C++ and Java hashset program to let them get TLE in not very large test case, and there even exists a input that could hack both programs! (See HARD version of that problem)

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

Ratings are updated!

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

I was 45 minutes late, but still +71 rating.Thanks for great problems.

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

Forgive me if I'm a bit retarded in that subject, but were 50 points always deducted for submissions that fail on a sample test, but not on a 1st test? I thought that rule of not deducting 50 points for submission failing 1st sample test applies to all samples.

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

Someone please tell how to solve div1C?

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

May I ask you to do your next contest in "Adventure Time" setting? It's very nice too :).

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

Following this success, I will make my next round with Pokemons!

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

Thanks for the awesome problemset. Unfortunately I missed this round :-(.

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

OFF TOPIC THOUGH: I just came to remember this author MinakoKojima for some special reason. some days ago I was trying to learn link cut tree and found her blog:- http://www.shuizilong.com/house/archives/spoj-9577-dynamic-tree-connectivity/

Thank you MinakoKojima for your contribution to the community.

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

+122 rating. I love ponies, also this is surely great contest!

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

Ох, какая же идиотская бага у меня в Е. И главное оно прошло пртесты только потому, что либо n <= 200, либо n делится на 200 в претестах

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

Официальный разбор будет?

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

    А чем, вот этот Разбор отличается от официального? Ну кроме того, что он только на английском, которого я не знаю.

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

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

The new Editorial is available here.

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

Моё решение по А div1 не сильно отличается от оригинального, кроме того, что я забыл про существование функции pow() и возводил числа в степень используя цикл. Из-за этого моё решение работало за O(nm), что должно было бы привести к однозначному TL, но меня спасло небольшое отсечение по ответу. А именно: перестать считать, когда вероятность выпадения данного числа будет меньше 1e-7. Тогда для ввода 100000 100000 достаточно сделать не 100000 итераций, а всего 28. Но тут я решил поэкспериментировать с точностью, и вот что вышло: Моё решение.

Тест 10.

Ввод: 94444 9

Вывод: 84996.6669186450

Ответ: 85000.099992058866

Комментарий чекера: ok found '84996.66692', expected '85000.09999', error '0.00004'

В условии задачи было сказано: "Ответ будет считаться правильным, если его относительная или абсолютная погрешность не превысит 1e-4."

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

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

    Нет, тут должно быть как раз ИЛИ. Вы даже правильно указали причину — в некоторых задачах добиться нужной абсолютной погрешности нельзя из-за того, что сам тип dooble хранит только несколько значимых цифр. Это уже классика составления задач, участники привыкли видеть именно такое определение погрешности, и если вдруг требуется что-то другое (допустим, учитывается только абсолютная погрешность), я считал бы хорошим тоном написать об этом в условии жирным текстом.

    Кроме того, вы умеете доказывать, что в этой задаче действительно достижима абсолютная погрешность в 10^-4 (или, что то же самое, относительная в 10^-9)? Это не так просто, как кажется на первый взгляд.

    Ну и, вообще говоря, в данной задаче абсолютная погрешность всегда не больше относительной, поскольку правильный ответ не меньше единицы :)

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

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

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

Can you give me solution for this round? Thank u.

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

Div-2 A solution using regexp (language: Perl): longer, shorter.

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

Wrong picture guys. When Twilight is solving problems she looks different: