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

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

Всем привет!

Недавний тестовый раунд прошел хорошо. Ожидается, что теперь все будет работать быстрее. В подготовке задач сегодняшнего раунда принимали участие: Михаил Мирзаянов, Николай Кузнецов, Иван Фефер и Мария Белова.

Удачи!

Артем Рахов и команда Codeforces

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

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Ну наконец то появился этот пост. Долго я его караулил )
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Странно, KirillB находится и в 100 комнате, и в 102. Но задачи сдаёт только в 100й.
15 лет назад, скрыть # |
 
Проголосовать: нравится -7 Проголосовать: не нравится
почему на 1 тесте в задаче D нельзя получить ответ
3
3 2
2 1
3 2

Он так же приводит к правильной расстановке
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Что за странный вердикт :
Неправильный ответ на взлом 1
?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

А почему я не вижу «вкладку» Взломы? Раньше вроде была.

Может конечно из-за того, что я вне конкурса, но всё равно странно.

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

И вот в который раз.... Открываю код для взлома, вчитываюсь, закрываю и... понимаю, что не моню чей это код. :(

Реквестирую подпись автора сверху.

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А если я перепослал решение, которое у меня взломали, то оно проверяется на этом взломе?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

В задаче D на первом тесте может и быть такой ответ?

2 3

1 2

2 3

15 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится
Неплохой контест получился)
15 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится
Великолепный раунд!
Спасибо составителям и Всем, кто принял участие в создании и подготовке!
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
какой 4 претест в B?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Был баг ,  когда было системное тестирование , некоторые задачи отображалось "в очереди", а некоторые "претесты пройдены".
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Я не думаю, что это баг, возможно это сигнализировало о том что задача следующая в очереди, т.е. закончит теститься посылка другого участника-начнется твоя, или как-то так. Во всяком случае, если это и баг, смысла исправлять его не вижу.
15 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
И правда быстро. Может конечно сегодня тестов*посылок было меньше, но всё равно быстро. :)
15 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
Похоже, проклятье КФ на этот раунд меня покинуло:) Чтож, проверим дальше, тенденция ли это или случайность:)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
а рейтинги когда поменяются?
15 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится
Увеличение производительности сайта заметно - сегодня систесты завершились всего за 14 минут!=)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
2nd one is a little bit confusing.. Especially "If those rules don't indicate the size of the cut are clearly, then the way with which the cut part possesses the largest area is chosen."
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Was the site running extremely slowly or was it just my connection as both have been having their ups and down recently :P
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Интересно, а есть ли кроме меня умельцы, которые получили WA на D на финальных тестах?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    У меня почему-то последний тест не пройден... Был бы виден последний тест полностью, можно было бы хоть понять, что не так.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Хотелось бы узнать, как решается последняя задача
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +23 Проголосовать: не нравится
    Первое, что надо было заметить - n <= 10. Это значит, что решение экспоненцеальное, и можно перебирать какие-нибудь подмножества. Так и сделаем.

    Давайте посчитаем динамику по подмножествам: d[m][subm] - количество способов сделать связанное дерево из подграфа m с тупиковыми вершинами subm. Ответ будет суммой по d[2n-1][x], где кол-во единичных бит в x = k.
    Как пересчитывать: для пустого множества и множества из двух вершин (либо 0, либо 1) - очевидно. Теперь для большего: переберём i из subm - какой-нибудь тупик. Отрежем его от дерева по некоторому ребру в b. Получаем дерево на меньшем множестве вершин и с либо уменьшенным на 1 множеством тупиков, либо с изменённым i на некоторое b. Добавляем к текущему ответу уже посчитанную динамику. В конце надо разделить на k.
    В принципе, наверное, всё равно, какой тупик отрезать.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I have a little question about a challenge case in problem A of today's contest. In my room one coder wrote a subroutine where he checked for every address whether it matches with the "input" string. In order to do that, he run a for loop which checked character by character whether the "input" string matches with any of the addresses. His for loop runs like this:

for ( int i = 0 ; i < input.size() ; i ++ ) {
if(input[i]!=current_address[i]) break;
}

Now my question, shouldn't there be a runtime error when the size of the input is bigger than the current_address, given all the other characters are equal?

I challenged it and it failed. Can anyone explain why?
15 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится
Вы наверное пошутили, когда так распределили задачи по сложности?!
В ACM системе это не играет роли. Но здесь! Задачи С и D в сумме легче, чем задача B. Задача A легче задач C и D. Как результат я сдал более сложные A, B и косячнул с размером массива в D. Да, ошибка уровня дебила, но как результат почти все, оказались выше меня! Потому что задачи C и D это вообще детсад какой-то. Это очень сильно напомнило Воронежскую олимпиаду прошлых лет, где за более сложные задачи дается меньше баллов, чем за простые.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится
    Плохо конечно, что за лучшие задачи дают больше, но уж от этого никак не зависят твои ошибки с размером массива..

    Да и посмотреть какую задачу решать можно по монитору(т.е по кол-ву сдавших)
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится -6 Проголосовать: не нравится
      Ты вообще понял мысль или нет?! Ты сначала прочитай внимательно, а потом отвечай. Какая разница в каком порядке решать? Баллов все равно будет в разы меньше. Задача D приносит НАСТОЛЬКО больше баллов, что в сумме A и B ничего не решают. А тут каждая из задач (A или B) по сложности превосходила D. Мне кажется, что надо делать все задачи равными по количеству баллов и убирать упорядоченность по сложности (это понятие субъективное, а оказывает существенное влияние на расположение участников в итоговой таблице).
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +3 Проголосовать: не нравится
        Не согласен, что A - сложная задача.
        Особенно для любителей Java, обладающих методов startsWith(), определяющим, является ли строка префиксом данной или нет.

        Согласен, что B сложнее, чем C, и чем D, так что распределение баллов действительно неадекватное.

        Но в целом все задачи, кроме последней, были слишком легкими, о чем говорит трехзначное количество решивших по каждой из них.
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        А как решать D?
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        На Топ Кодере задачи имеют разные баллы и все довольны. Иногда 900 бывает проще, чем 500. В чем противоречие? Общий принцип один - решай больше задач, получишь больше очков. Не умеешь безбажно сдавать халявы - значит не спеши. Или тренируйся спешить без багов. Вероятность завалить халяву есть у всех, но чем кодер лучше, тем она меньше.
        • 15 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +5 Проголосовать: не нравится
          По идее раз задача - халява, то за нее должны давать меньше баллов, чем за не халяву. Тут же было наоборот.
          • 15 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            ну ошиблись тут с баллами (видимо авторы разные - не согласовали) не отменять же из-за этого разбалловку
            • 15 лет назад, скрыть # ^ |
               
              Проголосовать: нравится 0 Проголосовать: не нравится
              слова об ошибках с баллами и что задача А сложнее задачи Б, подразумевают наличие критерия сравнения сложности задач... я пологаю такого критерия нет...
              • 15 лет назад, скрыть # ^ |
                Rev. 2  
                Проголосовать: нравится +3 Проголосовать: не нравится
                раз есть баллы значит должен быть критерий
                на тк кстати тоже подставы с этим бывали, так как присутствует субъективность оценки

                разумеется оценка должна быть примерной, с которой согласно большинство
                • 15 лет назад, скрыть # ^ |
                   
                  Проголосовать: нравится 0 Проголосовать: не нравится
                  Я имел в виду, что оценка сложности (баллов по задаче) - это субьективное мнение авторов... Они вправе решать как считают верным...
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Не парься особо, я, например, аж 2 раза накосячил, как ребенок :)
    Один раз - площадь в int-ах в B, второй раз - не поставил break из цикла после обмена в D.

    На самом деле, конечно, порядок задач по сложности: A,C,D,B или даже C,A,D,B...
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Чтобы не ошибаться с размером везде пишу вектора, даже для деревьев. Тоже ошибся с распределением задач, все посдавали С на 8-20 минуте, я ее запинал на 32. Насчет А ты не прав, минуты за 3 набил и еще 4 минуты искал где еррор:). D сдал на 52, и хорошо еще что решения некоторых задач у моих соперников оказались палеными, потому что меня по баллам обгоняли. Но-это хороший урок. Не всегда надо читать те задачи которые "дешевле", в который раз на эти грабли наступаю:) 
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

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

      Извини, но по-моему это немножко быдлостиль.

      Когда-нибудь по времени не успеешь с таким подходом. Владеть надо обоими.

      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        Неужели vector <vector <int> > v(n) намного длиннее написать, чем int v[1111][1111]???
        Зато так гарантированно не ошибешься - все ошибки с выходом за границу массива/вектора ловятся сразу. Так что насчет быдлостиля я не согласен.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +5 Проголосовать: не нравится
    Я тут читал бложек и наткнулся на интересную фразу "Причём на второе место мы переместились только после того, как я вытребовал на форуме снятия у нас двух лишних попыток по задаче 11 из-за ещё одного из глюков. Суровый Паша Хаустов, лидер команды ТПУ, по поводу этого (вернее, не совсем этого) до сих пор рвёт и мечет – всем любителям троллесрача можно рекомендовать почитать."
    Кажись, ничего с тех пор не изменилось.

    P. S. Никого не хотел обидеть, просто фраза объясняет ситуацию :)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
so, those who are not in div2, were not allowed to open any solution? or it was a problem here? I just wanted to see some people's code (no intention was for hacking :P) but it didn't allow me to do so...
15 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
+83   and blue  :D , All effect of "rng"  thanx rng_58.
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
Ребят, кто задачу Е решил? Как вообще она решается? Была идея на meetinthemiddle для путей, но понял что идея палевная:)
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +2 Проголосовать: не нравится
    Перебором,наверное. Мой дошёл до 11 теста,но его можно было оптимизировать и оптимизировать :)
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      поподробнее идею перебора расскажи.
    • 15 лет назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится +3 Проголосовать: не нравится
      За что минусанули человека?:)

      Я решал перебором за O(числа деревьев). Деревьев <= n^(n-2) так что по времени проходит да и память сэкномлена по сравнению с динамикой:). Идея перебора хранить маску посещенных вершин и маску тупиковых, а при переходе пытаться увеличить дерево из первой (по номеру) тупиковой вершины после чего эта вершина перестает быть тупиковой (для алгоритма т.е. она удаляется из подмн-ва тупиковых). Ясно что при такой рекурсии ни одно дерево соответствующее пути(стэку) рекурсии не встретится дважды.
  • 15 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится 0 Проголосовать: не нравится
    Я не решил, но в конце появилась такая идея.

    Перебираем все возможные подмножества тупиковых вершин.
    Для оставшихся вершин считаем количество остовных деревьев на них. (например по теореме Кирхгофа http://e-maxx.ru/algo/kirchhoff_theorem)
    А также динамикой считаем количество способов выбрать из каждой тупиковой вершины по одному ребру, так чтобы в каждую нетупиковую входило хотябы одно ребро.
    Перемножаем эти два числа и прибавляем к конечному ответу.

    Наверняка есть способ проще ;)

    Неправильное решение.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +12 Проголосовать: не нравится
    Чуть выше я рассказал своё решение.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Я за (n-1)!(в худшем случае) перебирал все возможные остовные деревья данного графа.А именно: для каждой вершины кроме корня выбираем предка в текущем дереве.Потом ,зная предков, строим граф и проверяем - является ли он деревом. 
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
В чем может быть ошибка алгоритма для задачи E
Перебираем всевозможные комбинации n-1 ребер из всех m ребер, проверяем полученные графы на связность, считаем количество тупиков и если кол-во совпало с k прибавляем к ответу?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Do we get tutorial for this contest?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

In problem B test 7,  the input is 99 100 and the answer is 80 64. But what if the answer is 64 80? My program told me the latter answer and I think it's more reasonable--people would usually like to cut pictures as consistent with the origin ratio as possible, wouldn't they?