Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में बिना संघर्ष वाली सर्वश्रेष्ठ टीम खोजने का प्रोग्राम


मान लीजिए हमारे पास दो सूचियां scores और ages हैं, जहां scores[i] और ages[i] बास्केटबॉल गेम में iवें खिलाड़ी के स्कोर और उम्र को दर्शाते हैं। हम उच्चतम समग्र स्कोर वाली टीम चुनना चाहते हैं। यहां टीम का स्कोर टीम में सभी खिलाड़ियों के स्कोर का कुल योग है। लेकिन हम गेम में संघर्ष की अनुमति नहीं देते। यहां एक संघर्ष मौजूद है यदि एक छोटा खिलाड़ी एक बड़े खिलाड़ी से सख्ती से अधिक स्कोर रखता है।

उदाहरण के लिए, यदि इनपुट है scores = [5,7,9,14,19], ages = [5,6,7,8,9], तो आउटपुट 54 होगा क्योंकि हम सभी खिलाड़ियों को चुन सकते हैं।

समाधान के चरण

  1. sa := ages और scores से क्रमशः तत्व a और s लेकर बने जोड़ों की सूची
  2. sa सूची को सॉर्ट करें
  3. scores := sa से स्कोर की सूची
  4. maxScore := 0
  5. n := len(scores)
  6. dp := लंबाई n की ऐरे और 0 से भरी
  7. i को 0 से n-1 तक:
    • score := scores[i]
    • dp[i] := score
    • j को 0 से i-1 तक:
      • यदि scores[j] <= score:
        • dp[i] := max(dp[i], dp[j] + score)
    • maxScore := max(maxScore, dp[i])
  8. maxScore वापस करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

def solve(scores, ages):
    sa = [[a,s] for a,s in zip(ages,scores)]
    sa.sort()
    scores = [s for a,s in sa]
    maxScore = 0
    n = len(scores)
    dp = [0] * n
    for i in range(n):
        score = scores[i]
        dp[i] = score
        for j in range(i):
            if scores[j] <= score:
                dp[i] = max(dp[i], dp[j] + score)
        maxScore = max(maxScore, dp[i])
    return maxScore

scores = [5,7,9,14,19]
ages = [5,6,7,8,9]
print(solve(scores, ages))

इनपुट

[5,7,9,14,19], [5,6,7,8,9]

आउटपुट

54
  1. पायथन में सेवा केंद्र के लिए सर्वोत्तम स्थिति ज्ञात करने का प्रोग्राम पायथन में सेवा केंद्र के लिए सर्वोत्तम स्थिति ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास स्थितियों की एक सूची है, जिसमें कुछ घरों के स्थित निर्देशांक बिंदु हैं। यदि आप (xc, yc) पर एक सेवा केंद्र बनाना चाहते हैं ताकि किसी भी दिए गए बिंदु से (xc, yc) तक यूक्लिडियन दूरी का योग न्यूनतम हो। इसलिए हमें न्यूनतम दूरी का योग ज्ञात करना है। इसलिए, यदि इनपुट है positions = [(1

  1. पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम

    मान लीजिए हमारे पास n नोड्स वाला एक अनिर्देशित भारित ग्राफ है (नोड्स 0 से क्रमांकित हैं)। यह ग्राफ एज लिस्ट के रूप में दिया गया है, प्रत्येक एज e के लिए, उस एज को पार करने की सफलता की संभावना probability[e] है। हमारे पास प्रारंभ और अंत नोड्स भी हैं, हमें प्रारंभ से अंत तक जाने के लिए अधिकतम सफलता स

  1. - पायथन में अधिकतम योग वाली सन्निकट सबलिस्ट का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक सरणी A है। हमें वह सन्निकट सबलिस्ट ढूंढनी है जिसका अधिकतम योग हो, और उसका योग भी लौटाना है। उदाहरण के लिए, यदि A = [-2,1,-3,4,-1,2,1,-5,4], तो योग 6 होगा। और सबअरे [4, -1, 2, 1] होगा। इसे हल करने के लिए हम डायनामिक प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे। dp सरणी A के आकार की