Всем привет!↵
↵
Ну что же, вот и пришел сезон личных олимпиад в Беларуси. Совсем скоро, 12-13 января по всей Беларуси будет проходить областная олимпиада по информатике.↵
↵
Предлагаю в этом посте выкладывать условия, обсуждать задачи и прочее и прочее. Я же от себя после туров буду делиться своими идеями по задачам. ↵
↵
В прошлом году тоже было что-то похожее, кому интересно — вот [ссылка](http://codeforces.net/blog/entry/15748).↵
↵
Good luck && Have fun!↵
↵
Day 1.↵
↵
1. Тупая реализация! Главное, аккуратно чекать случай, когда есть ### и выстрел в центр.↵
↵
2. A — массив ответ. A[1] = y. Дальше просто добавляем единичные биты в свободные позиции. Проверяем, что набралось N элементов — выводим ответ, иначе -1.↵
↵
3. Дп F[pref] — ответ для префикса pref. left[x] — левая граница числа x, right[x] — правая соответственно, cnt[x] — количество. Пересчет↵
↵
- f[pref] = f[pref — 1]↵
- если pref == right[a[pref]], то f[pref] = max(f[pref], f[left[a[pref]] — 1] + cnt[a[pref]]↵
↵
Ответ лежит в f[n].↵
↵
4. Брут за N * K^2 довольно простой, фиксим позицию которая так и останется стоять (это N * K) а дальше смотрим как нужно повернуть минимально остальные диски. ↵
↵
По ограничению из условия — это 60. ↵
↵
Итого — 360 очень простых баллов.↵
↵
Кто знает как решать 4-ую на сто?↵
↵
Day 2.↵
↵
1. Обычная потная реализация! (фу-фу-фу давать такие задачи два дня подряд).↵
↵
2. дпшка f[i][j] — где i — последний чувак, которого мы поставили, j — сколько пьедесталов рассмотрели. f[i][j] — минимальная высота, на которой стоит i — парень.↵
↵
3. дпшка f[i][j] — где i — последнее письмо, которое мы доставили, а j — сколько раз мы ходили вдоль домов. f[i][j] — максимальное количество писем, которые можно доставить с такими параметрами. Пересчет фенвиком, ибо думаю что ДО должно упасть.↵
↵
4. Единственная задачка, которая требует чутка внимательности и соображалки. Ответ всегда 2!!! Исходя из этих соображений просто закидываем весь набор в сет пар (количество книг, тип книги). Дальше просто жадно берем первый и последний элемент. Они гарантированно замостят всю строку! Ну вот и все, генерим outputs и получаем 100 баллов.↵
↵
Итого — 400 очень простых баллов :).
↵
Ну что же, вот и пришел сезон личных олимпиад в Беларуси. Совсем скоро, 12-13 января по всей Беларуси будет проходить областная олимпиада по информатике.↵
↵
Предлагаю в этом посте выкладывать условия, обсуждать задачи и прочее и прочее. Я же от себя после туров буду делиться своими идеями по задачам. ↵
↵
В прошлом году тоже было что-то похожее, кому интересно — вот [ссылка](http://codeforces.net/blog/entry/15748).↵
↵
Good luck && Have fun!↵
↵
Day 1.↵
↵
1. Тупая реализация! Главное, аккуратно чекать случай, когда есть ### и выстрел в центр.↵
↵
2. A — массив ответ. A[1] = y. Дальше просто добавляем единичные биты в свободные позиции. Проверяем, что набралось N элементов — выводим ответ, иначе -1.↵
↵
3. Дп F[pref] — ответ для префикса pref. left[x] — левая граница числа x, right[x] — правая соответственно, cnt[x] — количество. Пересчет↵
↵
- f[pref] = f[pref — 1]↵
- если pref == right[a[pref]], то f[pref] = max(f[pref], f[left[a[pref]] — 1] + cnt[a[pref]]↵
↵
Ответ лежит в f[n].↵
↵
4. Брут за N * K^2 довольно простой, фиксим позицию которая так и останется стоять (это N * K) а дальше смотрим как нужно повернуть минимально остальные диски. ↵
↵
По ограничению из условия — это 60. ↵
↵
Итого — 360 очень простых баллов.↵
↵
Кто знает как решать 4-ую на сто?↵
↵
Day 2.↵
↵
1. Обычная потная реализация! (фу-фу-фу давать такие задачи два дня подряд).↵
↵
2. дпшка f[i][j] — где i — последний чувак, которого мы поставили, j — сколько пьедесталов рассмотрели. f[i][j] — минимальная высота, на которой стоит i — парень.↵
↵
3. дпшка f[i][j] — где i — последнее письмо, которое мы доставили, а j — сколько раз мы ходили вдоль домов. f[i][j] — максимальное количество писем, которые можно доставить с такими параметрами. Пересчет фенвиком, ибо думаю что ДО должно упасть.↵
↵
4. Единственная задачка, которая требует чутка внимательности и соображалки. Ответ всегда 2!!! Исходя из этих соображений просто закидываем весь набор в сет пар (количество книг, тип книги). Дальше просто жадно берем первый и последний элемент. Они гарантированно замостят всю строку! Ну вот и все, генерим outputs и получаем 100 баллов.↵
↵
Итого — 400 очень простых баллов :).