Codeforces Round 275 (Div. 1) |
---|
Закончено |
Вы играете в игру со своим другом. Ниже приведено описание этой игры.
Ваш друг придумывает n различных строк одинаковой длины m и сообщает вам все строки. Далее он выбирает случайным образом одну из них. Он выбирает строки равновероятно, то есть вероятность выбора каждой из n строк равна . Вы хотите угадать, какую из строк выбрал ваш друг.
Для того, чтобы угадать строку, загаданную другом, вам разрешается задавать другу вопросы. Каждый вопрос имеет следующую форму: «Какой символ стоит на позиции pos в загаданной тобой строке?». Строка считается угаданной, когда ответы на заданные вопросы однозначно определяют загаданную строку. После того, как строка становится угаданной, вы прекращаете задавать вопросы.
У вас нет определённой стратегии, поэтому очередным вопросом вы каждый раз равновероятно выбираете одну из еще не названных позиций. Ваша задача — определить математическое ожидание количества вопросов, необходимых для того, чтобы угадать выбранную вашим другом строку.
В первой строке записано целое число n (1 ≤ n ≤ 50) — количество строк, придуманных вашим другом.
В следующих n строках заданы строки, придуманные вашим другом. Гарантируется, что все строки различны и состоят только из строчных и прописных букв латинского алфавита. Кроме того, длины всех строк одинаковы и лежат в промежутке от 1 до 20 включительно.
Выведите единственное число — искомое математическое ожидание. Ваш ответ будет считаться правильным, если его абсолютная или относительная погрешность не превышает 10 - 9.
2
aab
aac
2.000000000000000
3
aaA
aBa
Caa
1.666666666666667
3
aca
vac
wqq
1.000000000000000
В первом примере придуманные строки различаются только символом в третьей позиции. Поэтому возможны следующие ситуации:
Таким образом искомое математическое ожидание равно
Во втором примере нам максимум может потребоваться два вопроса, поскольку любая пара вопросов определяет строку. Поэтому искомое математическое ожидание равно .
В третьем примере, независимо от того, про какую позицию мы спросим первым вопросом, мы сразу угадаем загаданную строку.
Название |
---|