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

Всем привет!

В ближайшее воскресенье, 18 мая 2014 года, в 14-00 по московскому времени, состоится второй квалификационный раунд Russian Code Cup 2014.

Зарегистрироваться и участвовать можно на сайте http://russiancodecup.ru

Участвовать могут все, кроме 200 лучших (на самом деле 201, поскольку 200-е место было поделено) в первом квалификационном раунде.

200 лучших проходят в отборочный раунд, а остальные смогут попробовать свои силы в третьем и четвертом квалификационных раундах 24 мая и 1 июня.

Всем удачи!

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

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

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

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

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

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

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

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

      Добавьте возможность поиска людей по части логина. =) Например, поиск людей в нике которых есть слово lord, pskov и т.д.

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

      Предлагаю убрать штраф за CE. Ибо у всех на С++ разные компиляторы и т.д.

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

Я понимаю, что на завтра это вряд ли реализуемо, но было бы очень круто, если бы следующие квалификации можно было писать вне конкурса.

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

    Я понимаю, что на завтра это вряд ли реализуемо, но было бы очень круто, если бы следующие квалификации можно было писать

    очевидный фикс по результатам предыдущей квалификации

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

В прошлый раз (тот раунд, что лагал), у многих оказалось не поставлена какая-то левая галочка в настройках, из-за которой они не могли отправлять задачи, в том числе и у меня. Теперь не могу найти эту галку (что-то вроде "да, я буду принимать участие"), ее отменили или где она находится?

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

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

    Надеюсь, что нет. Все-таки почти месяц был.

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

Первые две задачи просто отличные, побольше бы таких, дальше даже не читал

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

    Как по мне то первая сложновата для первой.

    Гена на 4-ой минуте сдал.

    Лунев на 9-ой с 3-го(!!!) раза.

    Это уже перебор господа!

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

    Зеленые поминусовали

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

Когда страница результатов "автообновляется", сбрасывается результат поиска по нику.

Еще не понравилось что за ошибку компиляции дается штраф. И давали бы лог компиляции в нормальном виде, а не tooltip-ом.

Свое решение вообще можно где-то посмотреть во время контеста?

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

    За ошибку компиляции штраф не даётся.

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

      UPD: сорри, прочитал ниже, и правда штрафное время не изменилось. Хотя странно, что в таблице отображается лишняя попытка.

      А вы пробовали? Мне тоже дали минус попытку за ошибку компиляции, и это действительно странно на онлайн-соревнованиях.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +20 Проголосовать: не нравится
    • можно ли свое решение посмотреть?
»
10 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Посылка по задаче, по которой уже получил AC добавляет попытку и штрафное время, что за бред? В задаче A, у меня был WA когда использовал long long int, сменил на int все прошло, 8 попытка!! не могу скачать исходники чтобы подтвердить.

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

Compilation error учитывается как неверная попытка?

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

Больше разбора случаев, хорошего и разного!

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

    Не знаю, у меня лишь один маленький спешл кейс в D, остальное всё без всякого разбора. Наверное, зависит от того, как писать.

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

Задача E — конечно трололо. Кто бы мог подумать, что там решение за O(n * m) :) Нижние границы >= 1 — это чит.

Но стоит признать, что идея добавлять в рюкзак сразу интервал чисел (step * [0..upper_bound]) за линию — довольно красиво (удивительно, что я её раньше не встречал). Я сначала хотел это сделать двоичным подъёмом, но решил, что java вряд ли успеет ~40 миллионов * log, и подумал ещё немного. У кого-нибудь зашёл двоичный подъём?

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

    а что такое двоичный подъём для рюкзака?

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

      Ну в данном случае это следующее. Пусть у нас есть массив рюкзака d, нам надо применить переход для числа step несколько раз (cnt). Т.е. нам надо выполнить d = fstep(d) cnt раз, т.е. посчитать fstepcnt(d). Это можно сделать стандартной техникой за O(log(cnt)) переходов. (более "интуитивное" объяснение: посчитаем, что будет, если мы применим fstep 1, 2, 4, 8, ... раза, а после этого за log(cnt) операций соберём ответ).

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

таких дерьмовых задач давно не видел, спасибо авторам.

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

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

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

    Лол, у аналогичного комментария сверху -40. Наверное, среднему пользователю ЦФа больше нравятся пони, нежели кореянки

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

      Я был искренне убеждён, что в "комментарии сверху", набравшем -40, нет сарказма :) Возможно, не я один, оттуда и минусы

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

Расскажите, как решать E? Я свёл к рюкзаку примерно из 700 предметов, каждый из который можно брать определённое количество раз. Ну или примерно из 10 000 предметов, каждый из которых можно брать один раз. На сумму до 500 000, разумеется. Но это вроде как в TL не влазит.

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

    На самом деле там 350 предметов, и не 500к, а 250к (потому что каждая пара 2 раза считается). И каждый предмет можно добавить за линию (с частичными суммами/sliding window), в итоге там в худшем случае ~40M операций, и даже на джаве с запасом в ТЛ влезает.

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

      А... К числу cnt[j + kol[i]] прибавляется то же самое, что и к cnt[j], только с c[j] и без c[j - r[i]*kol[i]], так? Круто, спасибо.

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

      а почему 350 предметов? например, звездочка из n вершин. вес каждого предмета n-1. n может быть до 501. ((n-1)*(n-1) <= 250K).

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

        Да, но это не худший случай (т.к. m становится слишком мелким). Худший случай — что-то порядка 350.

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

А правда ведь, что в E все запихнули n*m в том или ином виде, с проверкой на совсем бред?
В принципе, мне даже не сильно пришлось пихать (какой-то очевидной оптимизации в два раза хватило). Но как-то это не похоже на ИТМО.

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

ОК, ЛДЫБР и жалобы на жизнь удалены. Больше не буду.

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

У меня одного на условиях "прыгала" страница? Браузер — хром.

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

А разбор задач будет?

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

Первые 2 задачи сделали свое дело. +5 и +4, в итоге 204ый (:

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

    201-й же))) самое обидное место я считаю)

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

      Не знаю, что случилось, но у меня точно было 204ое место в момент, когда раунд закончился. Проверка какая-то дополнительная?

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

        Да, выгдядит так, будто буквально человека 4 убрали из окончательной таблицы: я поднялся ровно на 4 места через неоторое время после конца

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

А будет возможность дорешать?

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

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

Новый интерфейс в раунде 1 не видел, а в раунде 2 всё, что было, вроде как работало. Из того, что хотелось бы видеть исправленным (браузер Firefox 29.0.1, если что):

  1. (!) При обновлении страницы она автоматически скроллится в самый верх.
  2. При просмотре всех задач на общей странице — ссылки на задачи — javascript, а не url, поэтому не получается открыть их в новом окне.
  3. При просмотре каждой задачи на отдельной странице — объявление об изменении условия приходит в каждую задачу, а обновление страницы приводит к пункту 1.
  4. Скроллбар справа тонковат, что чуть добавляет неудобства пункту 1.
  5. Содержание страницы довольно сильно разрежено по вертикали. До условия нужно скроллить вниз. До полезных кнопок типа "послать" нужно скроллить глубоко вниз. В сочетании с пунктом 1 это занимает ненулевое лишнее время.
  6. (видимо, Firerox-specific) После скроллинга страницы через долю секунды (тогда же, когда, например, на странице с задачами выезжает или уезжает сверху полоса быстрых ссылок на задачи) страница перерисовывается и чуть дёргается от этого.

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

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

    Добавлю ещё — таймер на главной бежит на ~30% медленнее реального времени.
    Я, чуть было, на этом не попался.

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

    Люто плюсую!

    Хотелось от себя добавить, что после автообновления страницы поиск пользователя в результатах сбрасывается, и показываются общие результаты. Плюс хотелось бы не вводя свое имя в поиск, видеть себя в таблице результатов (как это реализовано на КФ, например)

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

    Спасибо за комментарий.

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

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

Пожалуйста, включите C++11 к следующему туру!

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

    Да, без C++11 неприятно. Люто плюсую. Хоть и использую мелочи, не хочется терять время из-за мелочей и переделок.

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

Как решать D?

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

    Из условия следует, что полученный граф может иметь вершины степеней только 1, 2 и 3. Также, если нам нужно минимальное количество операций, значит операция удаления ребра применима только в том случае, когда на удаляемом конце находится лишь одна вершина. И такими операциями мы получаем все вершины степени 2, за исключением максимум одной — корня.

    Отсюда вытекает само решение: Посчитаем степени всех вершины. Если есть степени больше 3, выводим  - 1. Если нету вершины со степенью 2, значит применять операцию удаления нужно лишь один раз к корню, и ответ будет , иначе применять операцию удаления нужно ко всем вершинам степени 2, кроме одной, и ответ

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

    Если у какой-то вершины степень >= 4, то выводим IMPOSSIBLE. Далее заметим, что исходная вершина войдет в ответ (иначе неоптимально будет — по факту, все дерево будет сгенерено из другой вершины + операции по появлению это вершины). Далее если есть вершина степени два, то выбираем любую из них, принимаем ее за корень и честно генерим дерево, удаляя лишнее, где это необходимо. Если такой вершины нет, то генерим из листа. На практике достаточно вывести формулу, исходя из количеств вершин нужной степени, причем формула не зависит от того, что приняли за корень.

    Ну и, конечно, не забыть об абсолютно отдельном случае n = 1)))

    Абсолютно строго доказывать сие я не умею, но сие зашло)))

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

      Спасибо, написал на контесте то же самое, не зашло, думал неправильная идея, сейчас перечитал код, заметил, что после вывода 0 на тесте 1 не написал return 0;

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

    Я считал динамику d[v][parent] — минимальное количество операций, необходимое для получения поддерева вершины v, придя в нее из вершины parent. parent = 0 — если текущая вершина корень.

    Поскольку степени вершин не превосходят 3, то у каждой вершины может быть не более трех предков, поэтому достаточно массива размерности d[N][4].

    Ответ на задачу ans = min(d[v][0]).

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

Напоминание о раунде немного задержалось. В правке скрин.

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

    у Вас вообще почти вовремя пришло, что Вы жалуетесь :)

    в правке скрин...

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

      У вас оно вообще пришло ))

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

        Ещё не всё потеряно! Мне пришло всего пару часов назад.

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

        Мне вот сейчас пришло. Но может надо отнестись с пониманием, ведь рассылка почты не самое привычное дело mail'а ;)

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

Найдётся ли добрый человек, который добавит в тренировку?

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

Как решать B без стенки из ifов?

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

    Перебрать все расстановки ладей в верхнем левом квадрате 3x3.

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

    Не помню задач за последние полгода, чтобы там не было операторов if. о_О

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

    понять, что ответ mx + ny - xy - 3 где x, y число различных соотвественных координат.

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

    ifoв всего 6, небольшая стенка то)

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

Добавил в Тренировки: 2014 Russian Code Cup, квалификация 2. Отличный архив, всё сразу и без проблем залилось!

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

Мне только что (6 часов 19 мая) напомнили о втором квалификационном раунде (второй час 18 мая). mail.ru — Почта России в интернете.

http://pasteboard.co/

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

    У меня почтовый ящик тоже на мейл.ру (inbox.ru) такое же письмо и в то же время. Обидно, что я не получал уведомлений вовремя, и уже второй раз пропускаю по этой причине отбор.