Описание
Учитывая длину n
и размер алфавита k>0
, ваша программа должна определить количество строк с теми параметрами, которые имеют максимальное количество уникальных подстрок. В случае k=2
этого генерируется OEIS A134457 .
пример
Например, 2210
есть подстроки ,
2
, 22
, 221
, 2210
, 2
, 21
, 210
, 1
, 10
, и 0
, в общей сложности 11. Тем не менее, 2
появляется дважды, поэтому он имеет только 10 уникальных подстроки.
Это как можно больше для длины 4 строки , содержащей 3 различных символов, но она связывает с 35 другими строками в общей сложности 36 Tieing строк в том числе 0012
, 2101
и 0121
. Следовательно, для n=4
и k=3
, ваша программа должна вывести 36.
Тестовые случаи
n k output
0 5 1
1 3 3
5 1 1
9 2 40
2 3 6
5 5 120
code-golf
combinatorics
user1502040
источник
источник
n=2
,k=3
вывод 911,12,21,22,31,32,33,13,23
:?Ответы:
Желе , 9 байт
Попробуйте онлайн!
Ввод в обратном порядке. Грубая сила.
источник
ṗẆQ$€ZṪL
Pyth, 12 байт
Попробуйте онлайн.
Чистая грубая сила.
объяснение
Q
в программу.n
) вQ
.E
: прочитайте и оцените строку ввода (k
).U
: получить диапазон[0, ..., k-1]
.^
: получить всеn
длины строк[0, ..., k-1]
..M
: найдите те, которые дают максимум для функцииf(Z)
:.:Z
: найти подстрокиZ
{
: удалить дубликатыl
: получить количество уникальных подстрокl
: получить количество таких строкисточник
Mathematica, 96 байт
источник
Haskell, 82 байта
Пример использования:
9 # 2
->40
.Как это работает:
источник