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

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

Сегодня прошел первый тур вышеописанной олимпиады. Предлогаю обсудить здесь задачи.

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

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

А-шку бинпоиском по ответу решал

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

B примерно за O(8*N) (тама 8 различных случаев и каждый перебираем за n).
C — находил для каждой X-axis точки максимальный рост(который равняеться h+0.5 или же если пересекаются то h+0.75) и суммировал их.Где то за O(N*H+X).

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

    C. Тоже самое. Решение работает в худшем случаи за 2 * 10^8 при TL 2 секунды :(.

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

    А можно сканлайном вот так:

    Добавим в вектор для каждой верхней вершины треугольника (x, y) данный (x — 1, 1) и (x + 1, 1). Проходим по всем высотам i сверху вниз, и по вектору слева направо, поддерживая сканлайн и несколько случаев, когда мы добавляем sqrt(2), 3sqrt(2) / 2 или 2. Сложность O(2NH), и че-то все задачи решаются за 10^8, может это нормально для ваших серверов?

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

У вас в области тоже катают? Не знаю как других, но меня раздражает как другие пытаются скатать (непонятно откуда) и хотят порвать тех кто чалил с 7 класса олимпиаду.

UPD: Они катают отсюда походу

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

Вы Б — шку как написали(не квадрат)

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

    У нас есть 8 случаев
    насчет х(x1>=x2 или же x1<x2), y(y1>=y2 и y1<y2), z(аналогично).
    2 случая * 2 * 2 = 8 случаев.
    Каждый случай за O(N) находим максимум и минимум и его разницу берем. И из всех разниц берем максимальный.
    Итоговая асимптотика O(8*n).

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

Скорее всего завтра будет игра, граф и строки. Всем удачи!

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

Не знаю как вы, а я прочитав условия, увидел первые 2 задачи как: напишите бинпоиск по ответу.

А геома халява по идее

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

Задачи второго тура как решать?

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

Прошел 2-тур, может кто-то сделать разбор задач?

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

    D) Отсортим оба массива по невозрастанию, пустим два указателя, рассмотрим случаи, когда они родственники. То есть, если они не родственники, просто присваиваем i-тому мальчику j-тую девочку. В другом случае, пытаемся i + 1 -ому мальчику присвоить j-тую девочку, а для i — того двигаем второй указатель.

    Е) Предпосчитаем все делители S до его корня четвертой и корня третьей степени(2 массива). Пройдемся по ним двумя циклами. Первым итератором будет p — c, вторым p — b. p — c + p — b = 2a -> найдем а. Нужно не забыть проверить чтобы все делилось на 2.

    Решаем квадратное уравнение p^2 — ap — S/(p — b)/(p — c) = 0.

    F) Для каждого i посчитаем ближайший справа и слева элементы, меньшие его. Ответом будет максимум среди всех (r[i] — l[i] — 1) * a[i](не забудьте отнять k — 1)

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

Может кто-нибудь скинуть условия 2-ого тура

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

У нас кто-то взял задачи до контеста (вчера) можете сказать откуда?

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

Задачу F можно решить используя этот алгоритм. Проходит на 100% !!!

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

А можно где-нибудь посмотреть результаты?