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

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

Привет!

Сегодня в полночь по Москве начнётся квалификационный раунд Яндекс.Алгоритм 2017. Раунд длится двое суток и является виртуальным, продолжительность самого контеста составляет 100 минут. Вы можете начать участие в любой момент времени между 00:00 субботы и 23:59 воскресенья.

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

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

Ссылка на вход в квалификационный раунд появится на сайте соревнования незадолго до старта раунда.

Войти в контест!

Напоминаем, что обсуждать условия и решения задач нельзя вплоть до 01:40 понедельника (самое позднее возможное время окончания раунда для участника). После этого можно обсудить задачи и их решения, например, в комментариях к этому посту или к разбору, который мы обязательно опубликуем.

Всем удачи!

UPD: У вас есть ещё около шести часов на то, чтобы принять участие. Не пропустите!

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

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

Why someone submits more than one problem? It is not necessarily!

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

1- Can I register not virtually ?

2- How many problems I must solve to be qualified to the next round ?

»
9 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
  1. меньше минимальное занятое место за четыре раунда отборочного этапа при равенстве зачетных очков.

Если я не смогу участвовать в каком-то из отборочных раундов, минимальное место будет выбираться из тех раундов, в которых я участвовал?

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

Опять проблема с отправкой файлов из Visual C++. Выдает ошибку компиляции. Только на этой платформе такая проблема и все еще не исправлено.

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

Задачи огонь ;)

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

any hint for problem E Cluster Connection? I tried brute force, and found this sequence: 6, 85, 900, 9450, .. but couldn't find any relation.

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

What's the difference between + and tick in the standings? Also can someone explain the difference between open and blind submission? Why would I resubmit after passing anyway?

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

    Rules say:

    Before submitting a solution to each problem for the first time, the contestant has to choose whether he or she wants to make the submission “open” or “blind”. This decision cannot be changed later. Results will be shown to the contestant immediately after a submitted solution has been tested.

    After making an “open” submission, the contestant is informed whether his or her solution is accepted. If it is not, the contestant is also told the type of error and the index number of the failed test case.

    Solutions that are “blind” submissions are tested on the sample test cases only (from the problem statement). If a solution doesn’t pass these test cases correctly, the contestant is told the type of error and the number of failed test case. If it does pass, the problem is considered to be preliminarily solved. Submitting further solutions to this problem becomes impossible. The final result of testing is announced after the end of the contest.

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

    Tick — successful blind submission, plus — open one. Blind submission is more profitable, because penalty is another. There are formulas in "Rules".

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

Please give some hints (only hints) for Artihmetic Mean Encoding (D) and Cluster Connection (E).

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

как решить F?

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

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

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

    Опубликован разбор

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

    Я решал задачу следующим образом. При поступлении очередного числа v[i] я из set удалял v[i]-1 и добавлял v[i]. Таким образом в конце работы количество элементов в set и было ответом.

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

    Надо создать массив b, где b[a[i]] = i, после этого решается одним тривиальным проходом: если следующее число меньше предыдущего, ans++

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

    У меня прошел такой линейный способ: 1)Заводим массив boolean. 2)Считывая каждое число записываем в ячейку с индексом равным числу true и проверяем равна ли true предыдущая ячейка, если нет ans++.

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

А можно ли дорешивать соревнование?

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

Извините, если слишком банальный вопрос, но как решать задачу B? Я даже написал свой класс City с интерфейсом Comparable, чтобы вызвать Arrays.sort() и потом находить через Arrays.binarySearch() города в массиве и как-то трёхмерные массивы точек и иксов прочёсывать с логикой внутри одного города ИЛИ, а между заданными городами И — если срабатывает, вывести (как-то) в ответ. Но это что-то слишком сложно для второй задачи. Кто сделал проще? Интересует Java. Спасибо!

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

    Ограничения очень маленькие поэтому в бинарном поиске и сортировке нет необходимости. Задача не сложная, но написать надо немало. Создаете HashMap, в который помещаете название городов, массивы с доступными переговорными(индекс — час, если в один час доступно несколько надо написать любую). Например: {null,"First","Second","First",...,"Third"}. null — нет доступной переговорной. На каждом запросе циклом по времени проверяете все нужные города. Если находиться час, в ячейке которого все нужные города имеют не null, то выводим эти ячейки. Вот пример кода, пытался называть переменные "говорящими" именами:

    Code