ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Фильтр
Сложность с по   Класс с по  
Выбрана 1 задача
Версия для печати
Убрать все задачи

В семье программистов родился ребенок. Папа-программист хочет назвать ребенка так, чтобы его имя подходило под шаблон P, а мама-программист настаивает на шаблоне M. Найдите самое короткое имя, удовлетворяющее обоим шаблонам, или сообщите, что такого имени не существует и семья находится на грани развода.

Шаблон представляет собой последовательность букв русского алфавита (буква «ё» не используется) и специальных символов, которые имеют следующие значения: 
? любая буква 
* любое (возможно нулевое) число букв 
[P]  любая буква из диапазона P
[!P] любая буква не из диапазона P
{n} предыдущий символ, повторенный ровно n раз
{n;}  предыдущий символ, повторенный не менее n раз 
{n;m} предыдущий символ, повторенный от n до m раз 
предыдущий символ, повторенный не менее одного раза

При этом 0 ≤ n ≤ m ≤ 10. Диапазон задается перечислением через запятуюсимволов и интервалов символов. Интервал символов записывается в виде a-b, что означает любую букву, расположенную в алфавите между a и b включительно.
Символы могут комбинироваться. Например, запись [а,о,е,у,и,ы,э-я]@ означает произвольную непустую последовательность гласных (необязательно повторяющихся). Запрещается записывать подряд фигурные
скобки и символы @.

Входные данные

В первой строке входного файла записан шаблон папы, а во второй – шаблон мамы. Длина каждого шаблона не превосходит 80 символов.

Выходные данные

Выведите в выходной файла кратчайшее имя ребенка, удовлетворяющее обоим шаблонам, если такое имя существует. Имя ребенка должно состоять из букв русского алфавита. Большие и маленькие буквы не различаются. В случае нескольких возможных имен требуется вывести первое по алфавиту. Если искомого имени не существует, выведите сообщение «NO SOLUTION».

Пример входного файла

?ик*т[а-о][л-р]*
В??тор*

Пример выходного файла

Виктор

   Решение

Задачи

Страница: << 1 2 3 >> [Всего задач: 14]      



Задача 102783  (#6)

 [Сжатие текста ]
Тема:   [ Динамическое программирование (прочее) ]
Сложность: 3+

Архиватором называется программа, предназначенная для сжатия данных за счет удаления избыточной информации. В этой задаче вашей целью является разработка простейшего архиватора текстов на русском языке. В таких текстах многие знаки стандартной таблицы символов не встречаются, поэтому они могут быть использованы для замены часто повторяющихся последовательностей символов. 

Заданы последовательности, которые могут быть заменены некоторыми символами английского алфавита, а также исходный текст, который следует сжать. Поскольку в исходном тексте эти последовательности могут накладываться друг на друга, результат сжатия существенно зависит от порядка замен. Ваша задача состоит в том, чтобы получить сжатый текст наименьшей длины.

Входные данные

В первой строке входного файла заданы целое число R – количество заменяемых последовательностей и целое число N – количество строк в исходном тексте (1 ≤ N ≤ 1000). Далее следуют R пар строк, описывающих возможные замены. Первая строка каждой пары содержит заменяемую последовательность, а вторая – заменяющий символ, являющийся большой или маленькой английской буквой. Различным заменяемым последовательностям соответствуют разные английские буквы (большие и маленькие буквы различаются). В следующих N строках записан текст, подлежащий сжатию. В этом тексте так же, как и в заменяемых последовательностях, отсутствуют буквы английского алфавита.

Выходные данные

В выходной файл вывести заархивированный текст.

Примечания

Символы перевода строки не заменяются (т.е. замены возможны только внутри строк). Длина каждой строки входного файла не превосходит 255 символов.

Пример входного файла

8 10
рхиватор
b
замен
D
ены
F
зам
G
быт
h
про
d
сжат
f
ом называется
g
Архиватором называется программа, предназначенная для сжатия данных за счет удаления
избыточной информации. В этой задаче вашей целью является разработка простейшего
архиватора текстов на русском языке. В таких текстах многие знаки стандартной таблицы
символов не встречаются, поэтому они могут быть использованы для замены часто
повторяющихся последовательностей символов.

Заданы последовательности, которые могут быть заменены некоторыми символами английского
алфавита, а также исходный текст, который следует сжать. Поскольку в исходном тексте эти
последовательности могут накладываться друг на друга, результат сжатия существенно зависит
от порядка замен. Ваша задача состоит в том, чтобы получить сжатый текст наименьшей длины.

Пример выходного файла

Аbg dграмма, предназначенная для fия данных за счет удаления
изhочной информации. В этой задаче вашей целью является разработка dстейшего
аbа текстов на русском языке. В таких текстах многие знаки стандартной таблицы
символов не встречаются, поэтому они могут hь использованы для Dы часто
повторяющихся последовательностей символов.

Заданы последовательности, которые могут hь DF некоторыми символами английского
алфавита, а также исходный текст, который следует fь. Поскольку в исходном тексте эти
последовательности могут накладываться друг на друга, результат fия существенно зависит
от порядка D. Ваша задача состоит в том, чтобы получить fый текст наименьшей длины.
Прислать комментарий     Решение


Задача 102784  (#7)

 [Пустоты в кубе ]
Темы:   [ Разбор регулярных выражений ]
[ Динамическое программирование (прочее) ]
Сложность: 3+

Жюри составило отчет об учебно-тренировочных сборах по информатике и собирается распечатать его на стандартном листе бумаги. Весь отчет набран одним моноширинным шрифтом, т.е. все символы (включая пробелы) имеют одинаковую ширину. Длина строки при печати этим шрифтом на листе бумаги равна S.

Назовем пустотой последовательность пробелов между соседними словами в строке, а также от начала строки до первого слова в ней и от последнего слова в строке до конца строки. Проблема, стоящая перед жюри, состоит в том, что научный руководитель сборов Владимир Михайлович Кирюхин отказывается читать текст, если сумма кубов длин пустот по всем строкам не минимальна. Помогите жюри расположить отчет на листе бумаги так, чтобы В.М. Кирюхин согласился его прочесть и утвердить результаты сборов. 

Для достижения требуемого расположения текста на бумаге разрешается заменять произвольную пробельную последовательность (т.е. непустую последовательность подряд идущих пробелов и/или символов перевода строки) любой другой пробельной последовательностью.

Входные данные

Первая строка входного файла содержит целое число S (1 ≤ S ≤ 80). В последующих строках записан отчет, содержащий не более 500 слов. Длина каждой строки отчета не превосходит 250 символов, а длина каждого слова не превосходит S.

Выходные данные

Вывести в первую строку выходного файла минимально возможную сумму кубов пустот по всем строкам. В последующие строки следует вывести искомое расположение текста на листе бумаги.

Пример входного файла

30
Победители летних учебно-тренировочных сборов по
информатике 1997 г.:
Владимир Мартьянов,
Анатолий Пономарев,
Николай Дуров, Андрей Лопатин.

Пример выходного файла

325
    Победители     летних
учебно-тренировочных сборов по
 информатике 1997 г.: Владимир
Мартьянов, Анатолий Пономарев,
Николай Дуров, Андрей Лопатин.
Прислать комментарий     Решение


Задача 102785  (#8)

 [Шаблоны с ? и * ]
Темы:   [ Разбор регулярных выражений ]
[ Динамическое программирование (прочее) ]
Сложность: 4-

Шаблоном называется строка, состоящая из английских букв (a, ..., z, A, ..., Z) и символов ? и *. Каждый из символов ? разрешается заменить на одну произвольную букву, а каждый из символов * – на произвольную (возможно пустую) последовательность букв. Про любую строку из букв, которую можно получить из шаблона такими заменами, будем говорить, что она удовлетворяет этому шаблону.

Имеются два шаблона. Требуется найти строку минимальной длины, которая удовлетворяет обоим шаблона, либо выдать сообщение, что такой строки не существует.

Входные данные

Заданные шаблоны записаны в первых двух строках входного файла. Длина каждого шаблона не превосходит 80 символов.

Выходные данные

В выходной файл следует вывести строку минимальной длины, удовлетворяющую обоим шаблонам, либо сообщение «Строки не
существует!»

Пример входного файла

A*
*B

Пример выходного файла

AB
Прислать комментарий     Решение


Задача 102786  (#9)

 [Ну и имечко! ]
Тема:   [ Динамическое программирование (прочее) ]
Сложность: 4

В семье программистов родился ребенок. Папа-программист хочет назвать ребенка так, чтобы его имя подходило под шаблон P, а мама-программист настаивает на шаблоне M. Найдите самое короткое имя, удовлетворяющее обоим шаблонам, или сообщите, что такого имени не существует и семья находится на грани развода.

Шаблон представляет собой последовательность букв русского алфавита (буква «ё» не используется) и специальных символов, которые имеют следующие значения: 
? любая буква 
* любое (возможно нулевое) число букв 
[P]  любая буква из диапазона P
[!P] любая буква не из диапазона P
{n} предыдущий символ, повторенный ровно n раз
{n;}  предыдущий символ, повторенный не менее n раз 
{n;m} предыдущий символ, повторенный от n до m раз 
предыдущий символ, повторенный не менее одного раза

При этом 0 ≤ n ≤ m ≤ 10. Диапазон задается перечислением через запятуюсимволов и интервалов символов. Интервал символов записывается в виде a-b, что означает любую букву, расположенную в алфавите между a и b включительно.
Символы могут комбинироваться. Например, запись [а,о,е,у,и,ы,э-я]@ означает произвольную непустую последовательность гласных (необязательно повторяющихся). Запрещается записывать подряд фигурные
скобки и символы @.

Входные данные

В первой строке входного файла записан шаблон папы, а во второй – шаблон мамы. Длина каждого шаблона не превосходит 80 символов.

Выходные данные

Выведите в выходной файла кратчайшее имя ребенка, удовлетворяющее обоим шаблонам, если такое имя существует. Имя ребенка должно состоять из букв русского алфавита. Большие и маленькие буквы не различаются. В случае нескольких возможных имен требуется вывести первое по алфавиту. Если искомого имени не существует, выведите сообщение «NO SOLUTION».

Пример входного файла

?ик*т[а-о][л-р]*
В??тор*

Пример выходного файла

Виктор
Прислать комментарий     Решение


Задача 102787  (#10)

 [Жадный калькулятор ]
Темы:   [ Динамическое программирование (прочее) ]
[ Длинная арифметика как инструмент ]
Сложность: 4

Задано алгебраическое выражение, составленное из неотрицательных вещественных чисел и знаков операций +, - и ?. Требуется так расставить в этом выражении скобки, чтобы его значение стало максимально возможным.

Входные данные

Исходное выражение длиной не более 250 символов записано в первой строке входного файла. Выражение содержит не более 50 чисел, каждое из которых лежит в диапазоне от 0 до 106 . Пробелы внутри чисел не допускаются.

Выходные данные

Выведите в первую строку выходного файла максимально возможное после расстановки скобок значение выражения, а во вторую строку – само это выражение (если вариантов несколько, нужно выдать любой из них). 

Пример входного файла

1+2 - 3.0*4

Пример выходного файла

0
((1+2)-3)*4
Прислать комментарий     Решение


Страница: << 1 2 3 >> [Всего задач: 14]      



© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .