|
Menu |
|
Задача Набор строк
| Файл входного файла: | typing.in |
|---|---|
| Файл выходного файла: | typing.out |
| Ограничение по памяти: | 64 MB |
| Ограничение по времени: | 2 s |
Описание
В Инновационном Отделе НИИ Исследований Данных Строк разработана клавиатура для внутреннего пользования, облегчающая набор строк огромной длины. Кроме обычных клавиш, соответствующих маленьким латинским буквам, на клавиатуре есть еще n функциональных клавиш F 1 , . . . , F n , соответствующих заданным строкам из словаря S 1 , . . . S n . При нажатии такой клавиши F i строка S i загружается во внутреннюю память клавиатуры. В каждый момент времени в памяти может находиться не более одной строки из словаря.
Кроме того, в клавиатуру встроен графический манипулятор "Кыш", с помощью которого легким движением руки можно ввести любую подстроку находящейся в памяти строки.
Вася занимается исследованием эффективности данного нововведения. Для этого ему требуется написать программу, которая будет вычислять минимальное необходимое количество действий (нажатий и использований "Кыш" ) для ввода данной строки S . В момент начала ввода строки память пуста.
Например, если требуется ввести строку "abacaba", а в словаре есть строки "baba" и `"caca", то это можно сделать за четыре действия - нажать F 1 , выбрать манипулятором подстроку "aba", затем нажать "c", и опять выбрать манипулятором подстроку "aba". Если бы нужно было набрать с таким словарем "bacababa" , то это можно сделать за пять действий: "b" , F 2 , "aca", F 1 , "baba".
Формат входных данных
В первой строке входного файла задано число n (1 ≤ n ≤ 50) . В последующих n строках заданы S i , составленные из не более чем 500 символов. В последней строке вводится непустая строка S , длина которой не превосходит 100000 . Все символы строк - маленькие латинские буквы.
Формат выходных данных
Выведите минимальное необходимое количество действий.
Примеры:
| ввод | вывод |
|---|---|
|
1 |
1 |
|
|
|
|
2
|
4 |
|
|
|
|
2
|
5 |
|
|
|
Обсуждение:
Начать обсуждение:
Powered by django, eJudge.
После 20 неудачных попыток я понял одно :) Линейный хэш и бинарный поиск по нему дает TL 11, а хэш-таблица валится на 3-7. Остается только гадать на каком модуле проходит хэш-таблица, если вообще проходит. Придется строить какой-нибудь суффиксный автомат.
Дата: 2010-05-03 19:35
Ответить →
Все верно, решается с помощью суффиксного автомата :)
Дата: 2010-05-04 00:32
Ответить →
классная задачка. динамика + автоматы. Madiyar говорит с хэшом делал.
Дата: 2010-05-06 13:43
Ответить →