Максимальна кількість окремих рядків


9

Опис

Враховуючи довжину 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

3
Скажіть, будь ласка, кілька прикладів? З цього дуже короткого опису важко переслідувати виклик.
ETHproductions

Так би не n=2, k=3вихід 9 11,12,21,22,31,32,33,13,23:?
veganaiZe

@veganaiZe У подвійних цифр є повторна підрядка.
user1502040

Відповіді:



3

Pyth, 12 байт

l.Ml{.:Z)^UE

Спробуйте в Інтернеті.

Чиста груба сила.

Пояснення

  • Неявне: додавання Qдо програми.
  • Неявне: прочитати та оцінити рядок введення ( n) в Q.
  • E: читати та оцінювати рядок введення ( k).
  • U: отримати діапазон [0, ..., k-1].
  • ^: отримати всі n-лінійні рядки [0, ..., k-1].
  • .M: знайдіть ті, які дають максимум для функції f(Z):
    • .:Z: знайти підрядки Z
    • {: видалити дублікати
    • l: отримати кількість унікальних підрядків
  • l: отримати кількість таких рядків

2

Математика, 96 байт

Last[Last/@Tally[Length@Union@Flatten[Table[Partition[#,i,1],{i,s}],1]&/@Tuples[Range@#2,s=#]]]&

2

Хаскелл, 82 байти

import Data.Lists
l=length
n#k=l$argmaxes(l.nub.powerslice)$mapM id$[1..k]<$[1..n]

Приклад використання: 9 # 2-> 40.

Як це працює:

       [1..k]<$[1..n]  --  make a list of n copies of the list [1..k]
      mapM id          --  make a list of all combinations thereof, where
                       --  the 1st element is from the f1st list, 2nd from 2nd etc
  argmaxes             --  find all elements which give the maximum value for function:
     l.nub.powerslice  --    length of the list of unique sublists
l                      --  take the length of this list
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.