अलग-अलग सब्सट्रिंग्स की अधिकतम संख्या


9

विवरण

एक लंबाई n, और एक वर्णमाला के आकार को देखते हुए k>0, आपके प्रोग्राम को उन मापदंडों के साथ तार की संख्या निर्धारित करनी चाहिए, जिनमें अधिकतम संख्या में अद्वितीय सबस्ट्रिंग हैं। के मामले में k=2, यह OEIS A134457 उत्पन्न करता है ।

उदाहरण

उदाहरण के लिए, 2210सबस्ट्रिंग है , 2, 22, 221, 2210, 2, 21, 210, 1, 10, और 0, 11. की कुल हालांकि के लिए, 2दो बार है, इसलिए इसे केवल 10 अद्वितीय सबस्ट्रिंग है।

यह लंबाई 4 3 अलग प्रतीक वाले स्ट्रिंग के लिए यथासंभव अधिक से अधिक है, लेकिन यह भी शामिल है 36 tieing तार के लिए कुल 35 अन्य तार के साथ संबंधों 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=39 11,12,21,22,31,32,33,13,23:?
शाकाहारी

@veganaiZe दोहरे अंकों में बार-बार विकल्प होता है।
user1502040

जवाबों:



3

पायथ, 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.