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

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

Сегодня 13.07.2011 (ср), в 19:00 на сайте www.topcoder.com состоится 512-й Single Round Match.
Всем удачи в Арене!


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

13 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится
Юбилейный :).
  • 13 лет назад, # ^ |
      Проголосовать: нравится -11 Проголосовать: не нравится
    И разбалловка задач в тему! 256-512-1024, класс! :-)
    • 13 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Предлагаю, называть задачи сегодня не 250-500-1000, а 1<<8 - 1<<9 - 1<<10, или так, как это делается в вашем языке.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Стоит давать ссылку типа этой, тем более если используете не самое часто употребляемое время в сообществе. Спасибо.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Спасибо, поправил.
    • 13 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится +5 Проголосовать: не нравится

      Стало чуть ли не хуже, чем было. На этом сайте московское время по умолчанию. Вот так из-за вас кто-нибудь пропустит соревнование. Я вам в ЛС отправил, что надо поменять.

      UPD. ОК, спасибо.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Seems that now posting about coming SRM is a good way to increase your contribution rating :),I will also try this next time.
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Пичаль, второй контест подряд неплохо сдаю первую задачу, а перед самым концом макстестом нахожу в решении тупейшую багу...
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Как решать 1<<9 ?
  • 13 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится
    Можно считать, что Аш выбирает из первых i элементов в отсортированном массиве, а Эш - из остальных. Таким образом задача свелась к "найти в массиве максимальную подпоследовательность какой-нибудь хорошей последовательности". Первый элемент хорошей последовательности - это элемент массива, кроме того там лежит еще как минимум 1 элемент. Перебираем его индекс и находим за О(1) второй элемент хорошей последовательности если такой существует. Ну а дальше просто смотрим какие элементы массива в ней лежат
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Можно помедленнее?
      Пусть 0<k,l<i k,l ый лежат в фиб. последовательности. Что дальше делаем? 
      • 13 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Пусть k<l. Тогда можно считать, что k - первый элемент этой последовательности. Перебираем какой индекс в ней имеет l и дальше по моему решению
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А почему "Первый элемент хорошей последовательности - это элемент массива"?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну, мы же всегда можем откинуть начало - оно ни на что не влияет
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А как находить второй элемент хорошей последовательности?
      • 13 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

        Не знаю, что имел ввиду Егор за О(1), но можно заметить, что после 40го числа - числа больше чем наше максимальное. А если немного расписать числа Фибоначи, то получим, что

        F[k] = F[0] * F[k-2] + F[1]*F[k-1];

        Это для числе Фибоначи, а для произвольной последовательности надо F[0] и F[1] поменять на первые 2 элемента.

    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Можно пояснить, как за O(1) искать второй элемент хорошей последовательности?
      • 13 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        На самом деле для любой последовательности fn = an * f0 + bn * f1. Мы знаем fn и f0 и можем предрассчитать a и b.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Кстати говоря, надо осторожно обрабатывать случай, когда второй элемент получившейся последовательности получается меньше первого.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      После прочтения коммента мне вспомнился вот этот ролик. Фраза на языке до сих пор крутится. =)

      P.S. я не сдал 512.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну, у меня вот тоже какая-то загадочная бага, которую я до сих пор не нашел :(
        • 13 лет назад, # ^ |
            Проголосовать: нравится +5 Проголосовать: не нравится
          Да-м, условие про возрастающий порядок нужно не только для разделения на 2 части...
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        У меня она тоже началась крутиться когда я догнал что все числа в первой должны быть меньше чисел второй последовательности... Кто так читает условия...
    • 13 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      можете объяснить тест 3?
      • 13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        Возьмем 5,15,20,90 и 3,7,10
        upd точно, какую-то фигню написал...Сам запутался с этой задачей
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          ээээ... а как тогда получается возрастающая последовательность?
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Видимо:
            7, 3, 10, 13
            15, 20, 90
            • 13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              The whole process must be organized in such way that the resulting sequence is sorted in ascending order.

              ммм... опять же, что за хрень разве так можно?
              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Ну не знаю, может просто важно, что все числа подпоследовательности входят в одну последовательность Фибоначчи (не важно в каком порядке:)
                • 13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  важно.
                  последовательности такие рассматривать надо, но сам второй элемент в них считать частью ответа нельзя.
                  у меня из-за этого упало.
              • 13 лет назад, # ^ |
                Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

                Может 10 15 20 90

                (последовательность: 10 5 15 20 ..90)

                И 3 5 7(последовательность : 3 2 5 7)

                Последовательности к которым принадлежат выборки не обязательно отсортированы)

              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Меня эта задача вообще запутала :)
            • 13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              а 7 3 10 13 15 20 90 возрастающая что-ли?
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Жалко невнимательно читал условие 1<<9. Не заметил про неотрицательности чисел в последовательности Фибоначи (точнее я его вообще не заметил в условии, во время фазы кодинга). Итого -1<<9 и 1 неудачный челлендж.

Как и ожидалось, с правкой на неотрицательность - зашла.
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Аналогично. Только я не заметил отсортированность ответа. -(1<<9) и 2 неудачных chellenge. Ну хоть первая прошла. Будет -70, а не -150.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Может кто-нибудь толком объяснить условие 1<<9, а именно:
1. Там требуется, чтобы часть последовательности была последовательностью подряд идущих чисел Фибоначчи?
2. Там требуется, чтобы все числа первого были меньше всех чисел второго?
3. Там еще что-нибудь требуется?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    1. нет
    2. да.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    2. the resulting sequence is sorted in ascending order.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А для чего это условие:
    "The elements in Ash's subsequence don't have to follow in the same relative order as in S."?
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Он имел ввиду числа в самой последовательности Фибоначчи.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я почему-то понял это условие, что элементы в подпоследовательности должны быть обязательно не в таком порядке как в S и на это специально делал проверку (
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
For English readers:
I offer to call today's tasks as "1<<8", "1<<9" and "1<<10" instead of "250", "500" and "1000" respectively.
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Мои поздравления Shef (Vasyl[alphacom] на ТС)! Как он сам отметил, этот матч он запомнит на долго, так как сделал то, чего еще никогда не делал - правильно решил задачу на 256 баллов:)
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

А я вот второй раз в жизни учавствовал в SRM.

Я был во втором диве, занял 32ое место =)

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А как решать 1024?
  • 13 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится
    1) отсортируем все числа в последовательности по возрастанию Ясно, что нужно чтобы было не менее i чисел меньше либо равных ai 2) дп: взято i чисел меньше либо равных aj, переход добавляет несколько чисел из [ai, ai+1) Сложность O(n^3)
    • 13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

      Есть решение за O(N^2 logN). Отсортируем S. Пусть F[i] - кол-во последовательностей длины i удовлетворяющих S[1..i]. Тогда для вычисления F[i] достаточно перебрать первую позицию, в которой происходит нарушение a[j] > S[j], и из всех последовательностей вычесть плохие.

      F[0] = 1
      S[0] = 0
      F[i] = S[i]i - SUM( j =1..i, F[j-1] * C[i][j-1] * (S[i]-S[j-1])i-j+1 )

      UPD. Мое решение отправлено в практисе.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ага, можно так решать. Только непонятно, откуда log n в оценке
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Пожайлуста, объясните кто - нибудь, почему на тест 
{{104, 77, 181, 258, 439, 704, 1139, 1843, 2982, 4825, 451, 730, 1181, 1911, 3092, 5003}}
 в задаче 1 << 9 правильный ответ 10, а не 11.
Казалось бы, в первую последовательность берем 104 77 181 258 439, во вторую 451 730 1181 1911 3092 5003.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    я не знаю, верно ли трактую условие, но:

    The whole process must be organized in such way that the resulting sequence is sorted in ascending order.
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

ignore
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
хороший раунд, только небольшое недоразуменее, на мой взгляд: этот раунд слил, занял 281 место, но тем не менее рейтинг поднялся...для сравнения в предыдущем раунде занял 88 место... или так и должно быть?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А можно ссылочку на профиль? Поиск по хендлу выдает только вот это почему-то.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      • 13 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится

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

        А по хендлам - забавное, конечно совпдаение. Если это вообще совпадение.

        • 13 лет назад, # ^ |
            Проголосовать: нравится -6 Проголосовать: не нравится
          это не совпадение, мы просто с другом махнулись хэндлами, я просто с его акка написал несколько раундов, решили что там будет целесобразней
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Внезапно почувствовал разницу между TopCoder и CodeForces, у меня и там, и тут синий, а у вас здесь выше там ниже...
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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

Не в ту ветку.
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Оффтоп: кто может объснить как человек с design рейтингом 180 стал designer of month в июле?
К тому же доставляет этот вопрос в интервью (В единственном соревновании в котором он участвовал в июле, он занял последнее место.)
What was your favorite Design contest in June and why?