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

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

Доброго времени суток)

Приглашаем вас на последний раунд в уходящем году Good Bye 2013. Этот раунд будет не совсем обычным, потому что он будет общим для участников из обоих дивизионов.

Задачи для вас готовили авторы Геральд Агапов (Gerald) и Свечников Артур (ikar). А также, в проведении раунда нам помогал Павел Холкин (HolkinPV). Также говорим спасибо Виталию Аксенову (Aksenov239) за помощь. Традиционно хочется сказать слова благодарности Михаилу Мирзаянову (MikeMirzayanov) за системы Codeforces и Polygon, а также Марии Беловой (Delinur), которая перевела условия задач.

UPD: Распределение баллов по задачам похоже на стандартное — 500-1000-1500-2000-2500-3000-3500

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

UPD3: Поздравляем победителей последнего раунда в этом году. Рейтинг будет обновлен в течение нескольких часов.
1. BaconLi
2. Egor
3. liympanda

Желаем всем участникам удачи, высокого рейтинга и удовольствия от решения задач)

Анонс Good Bye 2013
  • Проголосовать: нравится
  • +347
  • Проголосовать: не нравится

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

2013, давай, до свидания! :)

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

Is there a handle changing feature?

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

It seems this contest would be rate?

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

Although have lessons tomorrow morning, going to take the one of the most important contest:) That's why I love Codeforces!

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

ahh... at last a post about 'Good Bye 2013'.

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

will the problems be as hard as div2 contest or div1 contests?

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

Good luck!!!

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

Advanced Happy New Year to everyone :)

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

Can we have hints on problems' difficulty? I can't imagine how the contest is going to be rated and the same problems will be for both divisions!

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

Good Luck to everyone...!!! And Happy New Year...!!!!!

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

how many problems there will be??and i think as the contest for the end it would be better to have extra duration.

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

много участников!!!КРУТО!!!

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

Well, actually it's good bye GPA! Having an exam tomorrow out of 30% and I still don't know what the course is all about and yet I'm taking part in this contest :D :D

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

Hey guys ... as 2013 is ending , i wanted to start a fresh new year training on problems , i aslo have some questions on this , so if anyone would answer me , and gimme some help .. I'd appreciate this :) And Happy New Year everyone :D Happy Coding ... :D

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

GL HF everybody :D Happy New Year 2014

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

Also, good fun && have luck!

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

I never really understand why the score distribution is announced during the last minutes before the contest? Can somebody explain me this? :)

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

"Score distribution will be announced before the contest."

contest starts in 30 seconds!

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

Happy new Year! Good luck in new year!

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится
Комментарий удален по причине нарушения правил Codeforces
»
12 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Будет ли разбор?

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

Can anyone tell how solve 379F - New Year Tree ?!

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

On problem C I made this:

while (vet[u] <= l) ++vet[u];

I realized that it would time out after locking :/, but then I remembered that GCC might optimize this stupid mistake I've made, and it did! :D Bye bye 2013!!

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

Good bye Codeforces Round for this year...

Insha'allah... we will meet again... :)

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

Спасибо за раунд!

Посылал исправление по E за 6 секунд до конца контеста. Сервер сработал — включилась страница "Мои посылки". Однако там ничего нового не было. Допуская, что я опоздал, это какой-то баг (и я должен был видеть эту посылку с вердиктом out of contest), или это так и надо, что посылка как бы не существовала вообще?

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

We get "Happy New Year!" instead of "Accepted". So nice!

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

At first, thanks for this great contest! I enjoyed it very much except for one thing.

Because of "Codeforces is temporary unavailable", I lost some hack points that I should be able to get... Although it's my fault that I came up with a powerful corner-case late, but why codeforces server have been weak for a long time in spite of much demand? I really want codeforces team to strengthen the server...

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

Any better idea on D than a hardcore DP + Euclid's Extended Algorithm (which i didn't manage to implement, by the way).

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

    My solution was something like this:

    Let X = s1, Y = s2. We count the number of appearances of X, Y, XY, YX, YY (you can prove that XX doesn't appear). In the latter three, at most one "AC" can appear, so you bruteforce all 8 possibilities. You don't need Extended Euclidean; the bounds n, m ≤ 100 are very forgiving for an immediate brute force.

    (I'm not sure what you mean by hardcore DP. In my opinion, my solution above is not DP at all, so probably different solutions.)

    (My solution turns out to fail, so it might not be the correct approach. Take the above with loads of salt.)

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

    My solution has a recursion to calculate the how many AC are in kth term, inside a dp that generates a possible second starting string, inside another dp that generates a possible first string. Is that hardcore enough? :p

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

      Yes, it is. Your recursion used memoisation I supose? Can you explain a little bit more of your solution, please?

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

        Well, at first I thought knowing the number of AC in each of the first string would be enough. If no. of AC in first is 3 and in second is 4, then the third will have 3+4 = 7. Then it will continue like fibonacci sequence. But then I realized, what if the string is like this ABBBBBA and CBBBBC.

        Even though the first and second string has count zero, third string has count 1. So, in order to generate the sequence, I must know the starting and end letter of each string, along with the count of AC.

        So I used dp to generate the first string. Only three letters would be used in the string, A, C and any other letter ( I used B ). So the parameter was dp ( first letter, position in the string, last letter used until now, number of ac ). At each position I could place one of the three ABC. I proceeded accordingly.

        Once I reached the end of first string, I called for the second string right from there. I had to carry few information from first string to the second. The first and last letter and number of AC in the first string. Apart from these, everything else was same for the second string.

        So the second dp parameter was this dp2 ( first letter of first string, last letter of first string, number of ac in first string, first letter in second string, position in second string, last letter in second string until now, number of ac in second string ).

        Once I reached the second string, I called a function to calculate kth term. I passes the following info to the function recursion ( f1, l1, ac1, f2, l2, ac2 ). Using this info, I could calculate kth term in O(k).

        Here is my submission: 5581341. Seems like a lot of calculation but it's really not a lot. Each of the table is filled only once.

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

    Bruteforce. Count of "AC" in s1, count of "AC" in s2, first and last letters of both strings ('A', 'C', or any other). And then for that information we can calculate count of "AC" in k-th string.

    And total time is (n / 2) * (m / 2) * 3^4 * k ~ 10^7.

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

Can someone explain why my submission to D fails?

http://mirror.codeforces.com/contest/379/submission/5584738

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

the Accepted verdicts have been changed to Happy New Year! how cool is that? :)

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

Эээ. На задаче C у меня с TLE упал QSort + обработка за O(n) на Паскале. Так ведь не должно быть, не правда ли?

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

    Если qsort без рандомизации, то вполне можно и сломать. А если pivot выбирать как-нибудь банально — вполне можно упасть на взломе кого-то еще с таким qsort

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

    Почему же? Всё правильно. Кто-то не умеет писать qsort с рандомом.

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

      Класть антиквиксорты в тесты — пошлость.

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

        Возможно — просто добавлены взломы.

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

        Да? А расскажи мне, как ты относишься к хешам по модулю 264?

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

          Хэш хэшу рознь. Но писать тесты, фактические, валящие по константе конкретные реализации оптимального алгоритма — это как-то не особо спортивно, IMO. Но если тест действительно из взломов, то у меня претензий нет.

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

            Что такое "по константе"?

            QuickSort в среднем случае работает за .

            Многие сортировки в худшем случае работают за .

            QuickSort в худшем случае работает за O(n2).

            Отношение константой не является.

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

              «По константе» значит «валит лишь отдельные реализации алгоритма». От шаффлинга массива оценка худшего случая квиксорта не изменится, однако, почему-то, считается нормальным, что решение с шаффлингом проходит несмотря на свою квадратность.

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

                Неправда ваша. Оценка среднего времени по худшему тесту очень даже меняется.

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

                «По константе» значит «валит лишь отдельные реализации алгоритма».

                Обычно «по константе» значит совсем другое: например, что решения с операций проходят, а с уже нет, при том, что эти константы 10 и 15 очень вероятны при решении задачи.

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

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

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

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

                  В худшем случае любой quicksort работает за O(n^2) — хоть с шаффлингом, хоть методом Синглтона, хоть чем угодно ещё. Этот факт не меняется от того, можно ли сгенерировать конкретный тест, на котором это будет происходить.

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

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

                  Для любого теста существует вероятность что на нем quicksort будет работать O(N^2), поэтому мы и говорим о матожидании времени работы. Но под этим понимается никак не среднее время работы на случайном тесте, а среднее время работы на худшем тесте (немного грязное определение конечно, но смысл я думаю ясен).

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

                  Справедливости следует сказать, что нам нужно не стабильно валить quicksort, а хоть один раз из нескольких попыток. И свалить не в самый плохой случай, а в долго работающий.
                  Но и это сделать не представляется возможным :)

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

                  В худшем случае любой quicksort работает за O(n^2) — хоть с шаффлингом, хоть методом Синглтона, хоть чем угодно ещё.

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

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

                  Стоит добавить, что, как и в случае фибоначчиевой кучи, на практике так обычно не делают, потому что константа великовата. На практике используют Introsort, основная идея которого — переключиться с Quicksort на Heapsort, если глубина рекурсии становится слишком большой.

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

            Кстати, мне вот на языке D приходится писать sort !("a < b", SwapStrategy.stable) (arr) вместо просто sort (arr) каждый раз. По аналогичной причине: sort в D 2.064 иногда работает за квадрат. В 2.065 будет, скорее всего, таки исправлено.

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

              Чистое любопытство и оффтопик: а как от этого спасает «стабилизация» сортировки?

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

                Замена qsort На merge sort?

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

                  Судя по названию enum'а SwapStrategy, его значение не должно бы менять алгоритм сортировки (:

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

                Там просто запускается TimSort вместо QuickSort, если этот параметр равен SwapStrategy.stable. Это фактическая деталь реализации, никак не следующая из названия... Хотя, действительно, я не знаю алгоритма сортировки, который бы в среднем случае работал за , в худшем за O(n2) и при этом был стабильным.

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

                  Ну, берём квиксорт и лексикографически сортим им таплы (элемент, его_изначальный_индекс), не?

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

                  Действительно :) . Что-то я протупил...

                  Ну, видимо, это всё-таки медленнее, чем заменить QuickSort на изначально стабильный алгоритм.

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

        Антиквиксорт — это ещё нормально. Пошлость — антиджаваквиксорт)

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

    Видел ещё, как минимум, одно решение, упавшее с самописным qsort на том же тесте. Возможно, тест как раз подобран таким образом, чтобы qsort, в котором медиана выбирается таким образом не проходил.

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

    О, мой тест. Строится довольно просто. Меня самого когда-то почти так же взломали (я не использовал randomize), вот теперь и ты научишься на олимпиадах писать с random'ом.

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

Did you guys notices that in status page instead of accepted, it is showing happy new year ??

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

Happy New Year! instead of Accepted ....

Nice way to wish us... :)

Like this innovative idea ... :)

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

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

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

What a perfect contest! I loved it so much! I would like to thank all of the authors and the preparation team! Happy new year to everyone!

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

fail of the year? 5573462

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

Problem A is exactly same as uva 10346 — Peter's Smokes.

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

Happy new year~ However, who can tell me why I WA at test #22? 5584508 I can run a correct answer on my computer. TAT

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

I have submitted the problem C in java7 5577222 it got runtime error during the contest and I realized that why it got RE? so I submitted the same code in java6 in practice,it got accepted.5585065 Did it consider as accepted or not?

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

    Your Comparator do not adhere to comparator contract — it should return 0 on equal elements. Java 6 sorting algorithm is implemented in the way that for all compariosions any outcome is possible, but int Java 7 sorting algotrithm (which is TimSort) sometimes only 2 outcomes are possible and when 3rd one is returned it is assertion error

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

      Thanks thats why you are such a good programmer we learn the use only and you know the implementation of the method too.From next year I will use the library method when I know about it completely. As for my solution whether it will be considered as failed or passed because it got accepted in Java6(in practice though).

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

Минуты не хватило чтоб отправить D, однако прошла :(

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

My this code for problem C has given me TLE in 11th case ... As the input is very big, I'm unable to know the reason... would anybody help please ???

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

А давайте как в задаче С подарим всем рейтинг?!

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

I would have passed F, if I would have used scanf instead of cin.
I did not expected that time limit would be kept so strict.
May be I should start using scanf and printf for each and every problem :(
Feeling very very bad :(
It is not a good gift at all :(

http://mirror.codeforces.com/contest/379/submission/5585325

http://mirror.codeforces.com/contest/379/submission/5581511

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

Does anybody have any idea how will they give the ratings? Because this contest was very different from other ones. Div1 contestants were in the same place as Div2 contestants and the contest was rated for both of them. Will there be considered a Additional points for Div2 Participants? (Hope so!)

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

Surprised to see Petr and tourist not try to solve number F!!!!Instead they were busy in hacking!!Whats the secret behind this???

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

Oh the last luckiness for 2013, I submitted my F in the last second :)) I had done F before, but at the last moment I realised that I got wrong range :< I resubmitted and lost about 600 point :'( However alright <3 Happy new year everybody <3

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

So sad:(

5583857 on contest

5585359 upsolving

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

Egor was real quick in problem D :D

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

О, я сейчас придумал классное решение F:

если есть дерево, где длиннейший путь с концами в x и y, и добавился лист z

то теперь длиннейший один из

x-y, y-z, z-x

А вообще что-то эдакое было на September Cook-off

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

    Была такая идея на контесте. Но я что-то не придумал как это доказать, не подскажите?

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

      Так это сложно объяснить. Проще нарисовать.

      Все знают, что диаметр можно искать так — берем любую вершину. Переходим в самую далекую от нее. И это будет один из концов диаметра.

      Верно и обратное — если x-y — диаметр, а w — вершина, то наиболее удаленная от w — одна из x,y (может, есть и другие наиболее удаленные от w).

      Из этого, если x-y — диаметр и подвесили z за w, то наиболее удаленная от z тоже x или y. (из факта выше). Отсюда и следует корректность решения.

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

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

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

    И как посчитать 3 этих расстояния? Как решить проблему с вырожденными деревьями(

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

Can anyone explain 379C - New Year Ratings Change New Year Ratings Change why 5579353 gives runtime error ] while submission id 5585888 gives accepted answer... Thanks in advance...

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

I had submitted this code in the contest

http://mirror.codeforces.com/contest/379/submission/5581511
and after the contest, I submittted this.

http://mirror.codeforces.com/contest/379/submission/5586307

And when I submit it after the contest, it gets accepted
May be time limit decisions are affected from the load on the server at that time.

Please tell me what reason could be for this undesired behaviour.

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

pls update the ratings:)

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

F can be solved by either Heavy Light Decomposition or maintaining Diameter Pair with LCA. (HL: 1100ms, LCA: 550ms in C++) I had hard time implementing HL decomposition, I couldn't make it in time.

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

cognition solved problem A,C,B in 4:02 , 4:18 , 5:00 min !!!!!

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

мне кажется или на это соревнование зарегестриловалось наиболее количество пользователей — 3945.

Еще бы чуть-чуть и было бы 4000!)

P.S.Если не прав напишите)

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

pls change the ratings

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

I wonder, will cognition get banned?

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

Are they planning to update the rating next year or what?

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

Happy New Year to everyone!

I think if we have more problems in contest the results will be more reliable...
Wish we have more of these contest (Both Div , 7 Problems) in future...

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

i just noticed that Accepted has been changed to Happy New Year! even in contests other than today's round. i wonder if this is intentional, or some kind of bug with the site?

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

не могу ждать в конце года в рейтинге больше: (

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

cant wait for the year end rating anymore :(

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

https://pp.vk.me/c320524/v320524834/5f1a/jIzSfPkrraQ.jpg

какая все-таки хитрая эта D... (нет, я не проходил следующий тест ифом)

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

well by the server time it's the new year right now(happy new year) but the rates aren't updated yet.

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

please update the rating, I want to see the rating before sleep,TAT

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

hope ratings will be updated this year :D

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

please update the ratings quickly, wishing only a "Happy New Year" will not work

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

В задаче D верно утверждение, что если ответ есть, то его можно составить только из букв A и C?

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

where are the ratings?! :(((((

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

it was really nice contest!

but is it possible that rating gonna be updated this year? or we'll have to wait for the next year? xD

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

being specialist, how did aangairbender manage to solve all the problems especially Problem G of Good Bye 2013 (which remained unsolved in the contest) in virtual participation? who is he?? who helped him (if someone helped him)

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

Just finished coding problem G — it got accepted right after it passed the examples, but one hour spent coding it was so non-exciting to say the least.

How about a non-proliferation treaty on cactus problems? :) They rarely are conceptually different than corresponding problems on trees, but they are so much more painful to implement.

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

    Actually, I had twice as much code as if it were problem on tree. And the extra code is almost the same, just new parameter when handling the cycle.

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

      Well, you also have to find the cycles in the first place, correctly handle cases when several cycles share a vertex, etc. That's exactly my point — nothing conceptually different, but harder to implement.

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

    Best formula to create trash something "non-exciting to say the least" from the great problem.

    1. If you have a nice problem on line, but it isn't hard enough, replace this problem on the tree.
    2. If it is still not hard enough, replace this problem on vertex cactus (i. e. no one vertex lies on more than one cycle).
    3. If you are still not satisfied with the result, replace this problem on edge cactus (i. e. cactus in common sense).
    4. ....
    5. PROFIT!
  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    If possible:

    Could you share your approach to problem G? At least an overview to be able to read your solution. Thanks.

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

OMG!!! i finished watching two movies after the contest, and rating is not yet updated. i dont have patience anymore. going to bed hopping that i will see updated rating in the morning.

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

Ratings have been updated, congrats to everyone and all the best in new year :)

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

Ratings are updated. Check it out :)

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

Ура! Я стал фиолетовым!

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

Finally after ~5hours waiting, Rating has been updated! Now I can sleep :) Happy New Year!

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

Great match! And I have got the highest rating in this round. It will be better if Welcome 2014 Round which has the same rule as Good Bye 2013 were added.

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

thanks for this awesome round! :D happy new year everyone...:D

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


Thanks for the round and interesting problems!
Congratulations for everyone, who's color was upgraded :)

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

+203 points, it was impossible :D Thank you Codeforces for the good year!

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

Happy New Year's Eve!

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

Good bye 2013, good bye Div1!

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

Next contest will be Welcome 2014?

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

for problem A, tests 16-21 are all same. why?

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

This was such a nice contest! I crashed D because I used some variables as int instead of long long.Still,I managed to get ABC pretty fast and as a surprise, the rating increased over my epectations.So, thank you for the contest, and also thank you for the site, it really made my day.Happy new year to everyone!

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

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

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

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

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

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

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

        Столько раз уже обсуждалось...

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

        Вы все ради рейтинга решаете что-ли? Если бы на СF рейтинг не мелькал перед глазами — я бы даже не знал, какой он у меня. Вот на ТС не знаю — есть себе рейтинг, ну и ладно. Какая разница? Эти рейтинги ведь вообще мало что отображают. Понятно, что красный и синий — это немного разные уровни:) Но остальное — дело дисперсии, рэндома и всего остального.

        36 часов назад я был, скажем прямо, человеком с умственными способностями явно не выше средних, и IQ тоже. Я даже готов поспорить, что ощутимо ниже средних, если рассматривать только пользователей данного сайта. Чем там еще принято мериться? А, программирование. В АСМ я как бы тоже не особо преуспевал. Хотя в АСМ думать и быть умным не обязательно, поэтому здесь все далеко не так плохо.

        И что, от того, что я получил +124 и стал красным — что-то кардинально изменилось за эти 36 часов?

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

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

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

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

    По всей видимости, часть рейтинга перетекла из Div. 2 в Div. 1. На первый взгляд возможны такие последствия: средний рейтинг в Div. 1 поднимется, станет сложнее опуститься из Div. 1 в Div. 2; в то же время средний рейтинг в Div. 2 опустится, станет сложнее подняться из Div. 2 в Div. 1. Я бы не сказал, что это однозначно хорошо.

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

      Ну, такие вещи являются неотъемлемой частью кф уже очень давно.

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

        Вы делаете такие уверенные заявления, будто вам известны формулы вычисления рейтинга. Или есть на руках данные о том, как изменялась общая сумма рейтингов участников после каждого из последних раундов. Или еще какая-то полезная статистика. Поделитесь?)

        По поводу изменений в распределении рейтинга: в идеале, как я понимаю, система рейтинга должна максимально соответствовать идеям Эло. Отсюда следует подчинение нормальному распределению.

        Если на время забыть о существовании клонов, забивших пользователей и всего прочего, а втупую посмотреть на таблицу рейтинга — сейчас на переходе от div2 к div1 это как раз сильно нарушается. Нарисуйте график зависимости числа пользователей от рейтинга для графиков 1600-1699 и 1700-1750 и сами увидите, от 1700 вверх получается примерно по 50 пользователей на 1 единицу рейтинга и число довольно плавно и аккуратно падает к уровню примерно 30 для 1750; в то же время, от 1699 вниз — примерно по 30 пользователей на 1 единицу рейтинга вплоть до 1600.

        В чем соль совместных раундов? В том, что после их проведения, если пересчет соответствует принципам Эло — новое распределение тоже должно быть ближе к тому, которое предполагает рейтинг Эло. Следовательно, если что-то куда-то перетекает — то только в ту сторону, в которую должно перетекать согласно с идеями системы рейтинга. Это все при наличии дополнительных условий вроде "таблица совместного раунда более-менее адекватно отображает реальную силу участников". Вчера было достаточно простых задач, чтобы в середине таблицы все как раз было более-менее адекватно.

        Так что какими бы ни были изменения в трудности перехода с div1 в div2 и наоборот — картина должна была измениться в "правильную" сторону.

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

Первый раз участвовал в олимпиаде, код писал на Visual C++ 2010, при отправке задачи все время выдавало ошибку компиляции якобы "stdafx.h" не открывается, вопрос, каким образом мне отсылать код если без "stdafx.h" если на Visual studio 2010 од даже работать не будет??

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

Hello, 2014!! (in Japan)

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

So easy!

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

Great round to say good bye to 2013, I am equally hopeful for great contests this year!