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

Автор wilcot, история, 6 лет назад, По-русски

Привет всем. На этой неделе (8-12 января 2018 года) проходит областная олимпиада по информатике в Беларуси. Олимпиада проходит во всех областях (а их у нас всего шесть) в одно и то же время с одним и тем же набором задач. Здесь можно обсудить олимпиаду, ознакомиться с уловиями задач (надеюсь, что все участники олимпиады ознакомятся с условиями на самой олимпиаде) и, может быть, если я смогу решить, с решениями.

Всем участникам желаю удачи!  

Условия и решения задач для каждого из туров появятся не раньше их завершения.

Первый тур

Задача 1. Два квадрата

Решение

Решение на C++.

Задача 2. Творческие выходные

Подсказка 1
Решение

Решение на C++.

Задача 3. Непростая сумма

Подсказка 1
Подсказка 2
Подсказка 3
Решение

Решение на C++.

Задача 4. Роборалли

Подсказка 1
Подсказка 2
Подсказка 3
Решение

Решение на C++.

Второй тур

Задача 1.

Решение

Задача 2.

Решение

Задача 3.

Подсказка 1
Подсказка 2
Подсказка 3
Решение

Задача 4.

Подсказка 1
  • Проголосовать: нравится
  • +64
  • Проголосовать: не нравится

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

Условия первого тура здесь

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

Условия второго тура здесь

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

Результаты Витебской области.

Spoiler
»
6 лет назад, # |
Rev. 7   Проголосовать: нравится +42 Проголосовать: не нравится

Результаты Витебской области

Таблица

Качество

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

Результаты Брестской области: http://codeforces.com/blog/entry/57042 (ссылка больше не действительна)

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

Результаты Брестской области ниже

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

Ещё одно решение задачи второго дня C.Фотокружок.

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

Выпишем в новый массив разности соседних чисел, то есть A2 - A1,  A3 - A2,  ...,  AN - AN - 1. Назовем этот массив B. Получив очередные Li и Ri, будем рассматривать отрезок в массиве B от Li до Ri - 1 (Li = Ri нужно рассмотреть отдельно и просто вывести 1). Не трудно понять, что ответ на вопрос задачи равен maxSeg + 1, где maxSeg — это сумма в массиве B на подотрезке отрезка [Li, Ri - 1] с максимальной суммой (То есть, если рассмотреть все подотрезки, границы которых лежат от Li до Ri - 1 и посчитать на них сумму, то maxSeg — это максимальная из таких сумм).

Нахождение на отрезке подотрезка с максимальной суммой является довольно тривиальной задачей, по крайней мере полезно о ней знать.

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

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

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

del