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

C++ में समान XOR के दो सरणियों का निर्माण कर सकने वाले त्रिकों की गणना करें

मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है। हम तीन सूचकांकों जैसे i, j और k का चयन करना चाहते हैं जहां (0 <=i

इसलिए, यदि इनपुट [2,3,1,6,7] जैसा है, तो आउटपुट 4 होगा, क्योंकि त्रिक हैं (0,1,2), (0,2,2), (2,3 ,4) और (2,4,4)

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

  • रिट:=0

  • n :=गिरफ्तारी का आकार

  • इनिशियलाइज़ करने के लिए मैं :=1, जब i

    • एक नक्शा परिभाषित करें मी

    • x1:=0, x2:=0

    • इनिशियलाइज़ j :=i-1 के लिए, जब j>=0, अपडेट करें (j को 1 से घटाएं), −

      करें
      • X1 :=X1 XOR गिरफ्तारी[j]

      • (m[x1] 1 से बढ़ाएं)

    • इनिशियलाइज़ j :=i के लिए, जब j

      • x2 :=x2 XOR गिरफ्तारी[j]

      • रिट :=रिट + एम[x2]

  • वापसी रिट

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int countTriplets(vector<int>& arr) {
      int ret = 0;
      int n = arr.size();
      for (int i = 1; i < n; i++) {
         map<int, int> m;
         int x1 = 0;
         int x2 = 0;
         for (int j = i - 1; j >= 0; j--) {
            x1 = x1 ^ arr[j];
            m[x1]++;
         }
         for (int j = i; j < n; j++) {
            x2 = x2 ^ arr[j];
            ret += m[x2];
         }
      }
      return ret;
   }
};
main(){
   Solution ob;
   vector<int> v = {2,3,1,6,7};
   cout << (ob.countTriplets(v));
}

इनपुट

{2,3,1,6,7}

आउटपुट

4

  1. चार सरणियों से सभी चौगुनी गिनें जैसे कि उनका XOR C++ में 'x' के बराबर हो

    इस ट्यूटोरियल में, हम चार सरणियों से चौगुनी संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे, ताकि उनका XOR x के बराबर हो। इसके लिए हमें चार सरणियाँ और एक मान x प्रदान किया जाएगा। हमारा काम उन सभी चौपाइयों को गिनना है जिनका XOR दिए गए मान x के बराबर है। उदाहरण #include<bits/stdc++.h> usi

  1. सभी ट्रिपल को सॉर्ट किए गए सरणी में प्रिंट करें जो सी ++ में एपी बनाते हैं

    इस समस्या में, हमें संख्याओं की एक क्रमबद्ध सरणी दी जाती है और हमें अंकगणितीय प्रगति के रूप में त्रिगुणों को खोजने की आवश्यकता होती है। एक अंकगणितीय प्रगति संख्याओं की एक श्रृंखला है जिसमें क्रमागत पदों के बीच का अंतर समान होता है। आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं - Inpu

  1. दो बाइनरी सरणी में न्यूनतम फ़्लिप ताकि उनका एक्सओआर सी ++ में किसी अन्य सरणी के बराबर हो।

    समस्या कथन 0 और 1 के आकार n के साथ तीन सरणियों को देखते हुए, कार्य पहले और दूसरे सरणी में बिट्स के न्यूनतम फ्लिप को खोजने के लिए है जैसे कि पहले और दूसरे सरणी के ith इंडेक्स बिट का XOR ith इंडेक्स बिट के बराबर है तीसरी सरणी। कृपया ध्यान दें कि हम केवल सरणी 1 के अधिकांश p बिट्स और सरणी 2 के अधिकतम