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

पायथन में दो अलग-अलग शहरों में समान संख्या में लोगों को भेजने के लिए न्यूनतम लागत खोजने का कार्यक्रम

मान लीजिए हमारे पास लागत नामक एक सूची है। जहां लागत [i] में [c1, c2] इंगित करता है कि व्यक्ति के लिए शहर 0 तक पहुंचने के लिए c1 राशि खर्च होती है और शहर 1 तक पहुंचने के लिए c2 राशि खर्च होती है। हम चाहते हैं कि शहर 1 के समान ही लोग शहर 0 में जाएं। आवश्यक न्यूनतम लागत का पता लगाना होगा।

इसलिए, यदि इनपुट लागत की तरह है =[[2, 6], [10, 3], [4, 9], [5, 8]], तो आउटपुट 17 होगा, क्योंकि व्यक्ति 0 और 2 शहर 0 और व्यक्ति 1 और 3 से शहर 1, तो शहर 0 के लिए, लागत 2+4 =6 है, और शहर 1 के लिए, लागत 8+3 =11 है, कुल 17 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • s :=0
  • a :=एक नई सूची
  • लागत में प्रत्येक जोड़ी (x, y) के लिए, करें
    • s :=s + x
    • अंत में a में (y - x) डालें
  • सूची को क्रमबद्ध करें
  • i के लिए 0 से फ़्लोर तक (एक / 2 के आकार का) -1, do
    • s :=s + a[i]
  • वापसी

उदाहरण

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

def solve(costs):
   s = 0
   a = []
   for x, y in costs:
      s += x
      a += (y - x,)
   a.sort()
   for i in range(len(a) // 2):
      s += a[i]
   return s

costs = [[2, 6],[10, 3],[4, 9],[5, 8]]
print(solve(costs))

इनपुट

[[2, 6],[10, 3],[4, 9],[5, 8]]

आउटपुट

17

  1. पायथन में एक छड़ी काटने के लिए न्यूनतम लागत खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक मान n और एक सरणी है जिसे कट कहा जाता है। मान लीजिए कि लंबाई n इकाइयों की लकड़ी की छड़ी है। छड़ी को 0 से n तक लेबल किया गया है। यहां कटौती [i] उस स्थिति का प्रतिनिधित्व करती है जहां हम कटौती कर सकते हैं। हमें कटौती क्रम में करनी चाहिए, लेकिन हम कटौती के क्रम को अपनी इच्छानुस

  1. पायथन में घरों की पेंटिंग के लिए न्यूनतम लागत खोजने का कार्यक्रम

    मान लीजिए कि आकार m की एक सरणी है, एक छोटे से शहर में m घरों का प्रतिनिधित्व करता है, प्रत्येक घर को n रंगों में से एक के साथ चित्रित किया जाना चाहिए (रंगों को 1 से n तक लेबल किया गया है), और कुछ घर पहले से ही चित्रित हैं, इसलिए कोई आवश्यकता नहीं है फिर से पेंट करें। वे घर जो एक ही रंग से रंगे होते

  1. पायथन में सभी बिंदुओं को जोड़ने के लिए न्यूनतम लागत खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास बिंदु (x, y) के रूप में कुछ बिंदुओं के साथ बिंदु नामक एक सरणी है। अब दो बिंदुओं (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी बिंदुओं को जोड़ने के लिए न्यूनतम लागत का पता लगाना होगा। इसलिए, यदि इनपुट पॉइंट्स की तरह