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

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

Здравствуйте! Хочется Вам напомнить, что через некоторое время - в 17-00 15 мая (воскресенье;) состоится третий и последний квалификационный раунд "Russian Code Cup" в данном турнире. В данном раунде распределятся последние 200 мест в следующем раунде, а также 200 футболочек. Хотите футболочку? Всё зависит от Вас!

Good luck and have fun!

P.S.: Сайт - russiancodecup.ru. Там же Вы можете найти правила.

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

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

Хотеть футболку не вредно, только с правил не понятно ни то, когда их будут рассылать (можно понять так, что футболка - это Приз, так что пришлют ее не раньше осени), ни то, будут ли их рассылать вообще тем, кто не из России.

А даже если и будут, то у футболок с онлайн-турниров есть плохая традиция - преодолевая почтой свой долгий путь, они теряются)

13 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Функцию внеконкурсного участия так и не прикрутят?
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

    На ACM-like соревнованиях это чит. Можно под левым аккаунтом отсылать решения и тестить их на валидность и не поулчать лишнего штрафа.

    Вот дорешивание бы...
    • 13 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      Можно и без внеконкурсного участия зарегистрировать левый аккаунт и отсылать решения.Скан паспорта ни у кого не просят, это уже вопрос морали.
    • 13 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

      >>Вот дорешивание бы...

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

Как закончиться - расскажите как сдать E, пожалуйста! Ведь там что-то сложнее "реализации", как я думаю. Или все таки ошибаюсь?
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    У меня прошла просто реализация.

    Сначала будем считывать числа и распихивать их по очередям так:
     1. Берём очередное число
     2. Находим такую очередь с минимальным номером, что она либо пуста, либо последнее число меньше текущего.
     3. Если такая есть - вставляем элемент в неё, иначе выводим No
    Потом будет доставать минимальный из первых элементов очередей.
    Доказательство там вроде очевидное, но длинное
     
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А ты сдал это решение? У меня большие сомнения, что оно будет работать правильно.У меня все то же самое, только в пункте 2 решения Scorpy  я нахожу такую очередь что у нее последний элемент меньше нашего, но максимальный из таких.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        У меня такая же идея один в один.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Да, сдал
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Конечно первая такая очередь будет содержать максимальный элемент, так как концы очередей всегда отсортированны по невозрастанию (если изначально во все очереди добавить заглушечный ноль).
  • 13 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

    Задачу E можно сдавать, например, так. Пробуем по порядку поместить каждое число из входной последовательности в какую-нибудь из очередей, при этом число помещаем в очередь, только если в ней до этого не было элементов, больших нашего числа. Если на каком-то этапе нет такой очереди, выводим "NO". Иначе после окончания этого процесса идём по очередям и извлекаем элементы в том порядке, который нам нужен (для этого можно сделать копию исходного массива и отсортировать её). Попутно с этими двумя процессами формируем ответ. Данное решение проходит все тесты.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Тупое моделирование процесса с одной идеей. Очевидно, что во всех очередях все элементы должны идти по возрастанию. Очередной элемент нужно класть в ту очередь, где последний элемент в очереди - наибольший, но меньше данного. 

    Заведем k очередей. Также отсортируем список, чтобы узнать порядок, в котором нужно выводить элементы из очередей.

    Дальше повторяем следующий процесс. Сначала из начала очередей удаляем все элементы, если их пора вывести. То есть если тот элемент, который нужно вывести есть в начале какой-то очереди, то  удаляем из очереди. Так пока не удалим все элементы, которые уже можно удалить.

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

    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Пытался реализовать эту идею, по-ходу надо "прямить руки" :)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Все. Понял. Моя реализация была немного не корректна
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Расскажите, как D нормально решалась, пожалуйста. Генерация всех подмножеств с суммой 1000, а затем нахождение максимального количества непересекающихся из них почему-то не прошли.
  • 13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +1 Проголосовать: не нравится

    Её можно было сделать динамическим программированием по подмножествам. Ставим подзадачу: какую минимальную сумму нужно потратить, чтобы отправить все предметы из подмножества i? Для каждой подзадачи перебираем подмножество j - предметы, отправленные последней бандеролью. Считаем стоимость этой последней бандероли и при необходимости обновляем ответ для текущей подзадачи. Здесь требовалось знание основных приёмов работы с множествами. Возможно, её можно сделать и попроще в смысле логики работы алгоритма, но это решение получается достаточно компактным и быстро пишется.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Забавно:) Я пока было время, брал случайную перестановку предметов, а далее вычислял ее стоимость, предполагая что сначала идут предметы, отправленные в бандеролях по 1000г. Пишется очень быстро, и совсем не надо думать.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Но это же за 14! работает? Или у Вас умнее?
        • 13 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится
          Если подобавлять каких-нибудь несложных отсечений, то все пройдет. Даже за 14! =)
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Эх, постеснялся писать такое :)
            Придумал за 2^N ерунду, которая выдаёт неверный ответ.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Спасибо большое. Понял, почему у меня не зашло.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      блин. а я так и не дописал динамику. жаль.
      перебор как-то уже и руки не поднимаются писать. 
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Дп f[i] -- стоимость набора маски i.
    Из i пытаемся все остальные послать в разных коробках -- обновляем ответ, либо просто генерим маску из неиспользованнных элементов, чтобы их сумма была равна 1000(и обновляем f[i or mask])
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Надо было организовать перебор всех подмасок данной маски с выбором оптимальной суммы.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Меня порадовала задача D. Что по ней надо было умного писать? Мне лень было думать, я написал тупой перебор, и он прошел.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Жесть... Я написал ДП и оно на чем-то упало =/ 
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В D можна написать ДП по маскам и перебор всех подмасок данной маски итого O(3^n).
    • 13 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      А еще O(4^n) заходит (неэффективный перебор подмасок).
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Можно и за O(2n)
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ммм. Мне как-то не очевидно как (возможно просто после пары часов учебы голова на варит). Можешь пояснить как?
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ой, ошибся с оценкой=) Сложность моей реализации получилась 2n· k, где k - количество подмножеств с суммой 1000. В худшем случае даже больше, чем  3n получается...
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

В D проходит наинаглейший перебор на питоне.
Делаем рекурсию от набора, в ней пытаемся вырезать всеми способами 1000 и вызваться дальше. Плюс мемоизация в виде словарика кортежей.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А у меня наглейший перебор на питоне получил TL...
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Тут, видимо, фокус в мемоизации, это ж, на самом деле, динамика получается уже.
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Здравствуйте, я сегодня писал задачу C и в первой попытке я получил PE. Исправил - WA. Очень долго искал ошибку в идее, но ничего не нашёл, пока не наткнулся на то, что выводил int ":" int. (знаю глупо - )).
Так вот я бы хотел спросить, почему WA? если как я понимаю там просто был тест с часами или минутами <10 и т.о. вместо 2-х цифр получалась одна, а вместо второй - ":". Насколько я понимаю это эталонный случай PE. 
Поправьте если я не прав - )
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А какой смысл этот вопрос задавать здесь? Спрашивайте у жюри контеста.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Эмм... А разве автор поста не входит в состав организаторов?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Какая разница - входит или не входит? Вопросы жюри задаются другим способом. Ну если, конечно, вас интересует не ответ жюри, а ответ частного лица - то пожалуйста.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Вообще WA против PE это давний холиварчик. И это, по-моему, как раз случай когда допустимы оба варианта. Меня лично ничуть не смутило WA на той же ровно тупой ошибке =)
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    PE это плохо) PE это WA)
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Тесты опубликованы, можно запустить своё решение и посмотреть, в чём была проблема.
    http://russiancodecup.ru/tests/russiancodecup-2011-qual3-tests.zip
    • 13 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Я её сдал - )
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А как запустить, разрешите поинтересоваться? Я что-то не понимаю. (простите мою глупость). Написал задачу просто, но отправить не успел, интересно узнать верность решения.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я имел в виду скачать тесты и запустить вручную, у себя на компьютере. Через их систему после окончания контеста не получится.
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Это я понял. Но что запускать именно и как решение подавать в программу? В этом загвоздка.
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Я не очень понимаю, в чём проблема. Вы тестируете своё решение точно так же, как тестировали написанный код во время контеста, только на тестах жюри.
            • 13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Ох, файлы текстовые в тестах, значит? Черт, не подумал. Спасибо! Думал, что нужно как-то выполнять исходные тексты, которые там прилагаются. Зачем-то.
              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Исходные тексты из архива - это проверяющие программы (т.н. чекеры) и решения жюри. С решениями жюри, возможно, будет полезно ознакомиться.
                • 13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  А нельзя в чекер программу засунуть?
                  • 13 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    Нет, нельзя. Чекеры просто проверяют файл, сгенерированный Вашей программой, на правильность.
                    • 13 лет назад, # ^ |
                        Проголосовать: нравится 0 Проголосовать: не нравится
                      То есть, получается, что автоматом проверить решение нельзя и придется вручную проверять каждый тест? Печально.
                      • 13 лет назад, # ^ |
                        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

                        =================================
                        На самом деле можно скачать какую-нибудь тестирующую систему

                        А еще можно встроить в свою программу нечто вроде:
                        for (int i = 1; i <= кол-во тестов; i++) {
                            открываем файл "i";
                            решаем задачу;
                            запоминаем свой ответ;
                            открываем файл "i.a";
                            сравниваем свой ответ с ответом жюри;
                        }
                        (но это только если ответ единственный)
                      • 13 лет назад, # ^ |
                          Проголосовать: нравится +3 Проголосовать: не нравится
                        Есть вот такая клёвая штука чтобы тестить решения: http://acm.timus.ru/tester/
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

>>А какой смысл этот вопрос задавать здесь? Спрашивайте у жюри контеста.<<


:)  пусть X - число тех что младше 18 и попал в 200   в 3 квале 

истино ли X>3?

  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А какая разница?) Между квалом и онсайтом еще тур, так что не думаю, что будут какие-то репрессии до этого момента.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Истинно. Я как минимум четверых нашел :)
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ты на 204 месте?
    • 13 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится

      Нет, он похоже на 200м сейчас.
      Хотя странно. Я точно помню, что Kozlov Sergij закончил на 200м месте, сейчас он 199й.

      UPD: Агафонов Александр скорее всего был 200м со штрафным временем 71. Сейчас он 196й.
      • 13 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        Через мгновение после того как я вздохнул на 200м, уже был на 203, через пол часа уже 199 ))) наверное убивали читеров...
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Администраторы услашали ваши мольбы X)
13 лет назад, # |
  Проголосовать: нравится -62 Проголосовать: не нравится
все лохи.раунд уг.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    и не лень регатся ради такого камента? ) отсылал бы уже от родного ника )
    • 13 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Не, ну тут зато видно: человек честно говорит, от души :)
13 лет назад, # |
  Проголосовать: нравится -77 Проголосовать: не нравится
особенно со 190 по 220 они вооще лошары ! эу задроты! вы неудачики, а я молодец!! и маечку мне только за это!!
13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
Вдруг кто из организаторов увидит это сообщение. Очень хочется дорешивание, может проведете его на CF? =)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как посмотреть таблицу результатов одной страницей?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    похоже, никак
    • 13 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      Пичалька. Создатели, сделайте плиз, а. А то найти кого-нибудь сложно (
      • 13 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        действительно, я за три раунда устал всех из края мониторить, чтоб на сайт табличку сделать...
13 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Возник вопрос, а участникам, которым < 18  и которые прошли квалификацию, маечку высылать будут ? )
13 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Судебных приставов вышлют:)
Что-то это горячая тема очень)