Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1
  1  Гнедов Андрей Александрович, 23 февраля 2022 г. 17:55:10
     Очень содержательная задача для обучения программированию. Вполне можно отнести к разделу "Структуры данных". Нужно применить две структуры данных: приоритетная очередь и множество. Приоритетная очередь позволяет выбирать наименьший символ из доступных, а множество хранит те элементы, которые попали в выходную последовательность по максимальному перемещению. Для отслеживания тех элементов, которые уже взяты, приходится завести ещё один массив с булевскими значениями. В качестве элемента берём пару из символа и его номера в исходной строке.
  2  Шацкий Владислав Александрович, 24 января 2021 г. 16:11:10
     Вектор из 26 очередей)
  3  Матус Даниил Дмитриевич, 13 октября 2020 г. 23:23:27
     ну решение тупое но прошло короче делал деку дек по буквам куда кидал индекс потом за длинну строки проходил и каждый раз смотрел если есть эл слева на расстоянии к то их выводил иначе если таковых нет искал минимальный с минимальным номером все
  4  Ковешников Глеб, 12 июня 2020 г. 9:21:05
     декартач здесь совсем не нужен, все проще
  5  Яндулов Богдан, 10 июня 2020 г. 9:51:57
     Декартово по неявному ключу с массовыми операциями)))) 0.968 сек
  6  Шулаков Денис Юрьевич, 10 февраля 2020 г. 12:14:21
     действительно, поправьте условие, символ может не менять позицию!
  7  Иван Михнович, 21 сентября 2019 г. 0:10:59
     Это действительно жадный алгоритм, но довольно хитроумный: нам нужно, проходя по строке, поддерживать множество символов, до которых мы можем "дотянуться" из текущей позиции, и среди них жадно выбирать лексикографически наименьший. Также нельзя позволять символам оставаться неиспользованными, т.е. выходить за границу досягаемости.
  8  Пашментов Никита Владимирович, 02 февраля 2019 г. 15:46:27
     Имеется в виду, что если мы нарисуем для каждой буквы стрелочку к новой позиции, то к каждой позиции будет вести ровно одна стрелочка. Условием не запрещается оставлять букву на месте
  9  Даменова Дана, 16 октября 2018 г. 13:45:51
     Разрешается любой ее символ сдвинуть не более, чем на K позиций в любую сторону так, чтобы в конечном счете они <i>ВСЕ</i> встали на разные позиции!! ХОТЯ В ТЕСТЕ ДАЕТСЯ in 2 aababac out aaaabbc Буква "С" не меняет свою позицию!
 1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Беляев Сергей Николаевич, (c)2006 - 2023, ИНН 246305493507, E-mail: admin@acmp.ru