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

C++ में चिप्स के साथ खेलें


मान लीजिए कि कुछ चिप्स हैं, i-th चिप वर्तमान में चिप्स की स्थिति में है[i]। हम किसी भी चिप पर (संभवतः शून्य) जितनी बार चाहें, निम्नलिखित दो प्रकार के कार्यों में से कोई भी प्रदर्शन कर सकते हैं -

  • 0 की लागत से i-th चिप को 2 यूनिट से बाईं ओर या दाईं ओर ले जाएं।

  • 1. की लागत से i-th चिप को 1 इकाई से बाईं ओर या दाईं ओर ले जाएं।

प्रारंभ में, दो या अधिक चिप्स हो सकते हैं। हमें सभी चिप्स को एक ही स्थिति में ले जाने के लिए आवश्यक न्यूनतम लागत वापस करनी होगी। अंतिम स्थिति कुछ भी हो सकती है। इसलिए यदि प्रारंभिक चिप की सरणी [2,2,2,3,3] है, तो आउटपुट 2 होगा। चौथी और पांचवीं दोनों चिप को लागत 1 के साथ दूसरे स्थान पर ले जाया जाएगा। तो कुल न्यूनतम लागत 2<होगी। /पी>

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

  • विषम:=0 और सम:=0

  • मैं के लिए 0 से लेकर सरणी की लंबाई तक

    • अगर चिप्स [i] विषम है, तो विषम बढ़ाएँ, अन्यथा सम बढ़ाएँ

  • कम से कम विषम और सम लौटाएं।

उदाहरण (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int minCostToMoveChips(vector<int>& chips) {
      int odd =0;
      int even = 0;
      for(int i =0;i<chips.size();i++){
         if(chips[i]&1)odd++;
         else even++;
      }
      return min(odd,even);
   }
};
main(){
   Solution ob;
   vector<int> v1 = {2,2,2,3,3};
   cout << ob.minCostToMoveChips(v1);
}

इनपुट

[2,2,2,3,3]

आउटपुट

2

  1. सी ++ में उदाहरण के साथ अभिव्यक्ति वृक्ष

    एक्सप्रेशन ट्री एक विशेष प्रकार का बाइनरी ट्री होता है जिसमें ट्री के प्रत्येक नोड में या तो एक ऑपरेटर या ऑपरेंड होता है। लीफ नोड्स पेड़ का एक संचालन . का प्रतिनिधित्व करता है . गैर-पत्ती नोड्स पेड़ का एक ऑपरेटर . का प्रतिनिधित्व करता है । उदाहरण: इंफिक्स एक्सप्रेशन प्राप्त करने के लिए जिस

  1. C++ में सबसे अधिक पानी वाला कंटेनर

    हमें कंटेनर की दीवारों की ऊंचाई की एक सरणी दी गई है। लक्ष्य उस कंटेनर को ढूंढना है जिसमें पानी की अधिकतम मात्रा हो सकती है। चूंकि दीवारों की ऊंचाई एक सरणी के तत्व हैं, उनके बीच की दूरी को दो दीवारों के बीच की चौड़ाई के रूप में माना जाता है। उदाहरण के लिए, Arr[i] और Arr[j] की दीवारों के बीच j-i चौड़ा

  1. C++ में 3n स्लाइस के साथ पिज़्ज़ा

    मान लीजिए कि एक पिज्जा है जिसमें अलग-अलग आकार के 3n स्लाइस हैं, मैं और मेरे दो दोस्त पिज्जा के स्लाइस इस प्रकार लेंगे - मैं कोई भी पिज़्ज़ा स्लाइस चुनूंगा। मेरा दोस्त अमल मेरी पसंद की घड़ी की विपरीत दिशा में अगला टुकड़ा उठाएगा। मेरा दोस्त बिमल मेरी पसंद की अगली स्लाइस को दक्षिणावर्त दिशा मे