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

सी++ में सभी सबअरे एक्सओआर का एक्सओआर


इस समस्या में, हमें n तत्वों की एक सरणी दी गई है। हमारा काम सरणी के तत्वों से बनाए गए सभी संभावित उप-सरणी (क्रम में लिया गया) के XOR के XOR को प्रिंट करना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट - सरणी ={1, 3, 6, 8}

आउटपुट - 0

स्पष्टीकरण -

(1) ^ (3) ^ (6) ^ (8) ^ (1^3) ^ (3^6)^ (6^8) ^ (1^3^6) ^ (3^6^8) ^ (1^3^6^8)

इस समस्या को हल करने के लिए, एक सरल समाधान सभी उप-सरणी पर पुनरावृति हो सकता है और xors ढूंढ सकता है। लेकिन यह एक अक्षम तरीका है। एक बेहतर तरीका यह हो सकता है कि सभी उप-सरणी में होने वाले सरणी के प्रत्येक तत्व की आवृत्ति की गणना की जाए और xor के गुण का उपयोग किया जाए - तत्व की xor सम संख्या 0 है . इसका उपयोग करके हम उप-सरणी सूची में कई बार होने वाले सभी मानों को अनदेखा कर देंगे, अब विषम घटना आवृत्ति वाले तत्वों पर विचार किया जाना चाहिए यानी विषम घटना आवृत्ति वाले तत्वों का xor अंतिम परिणाम देगा।

सरणी के प्रत्येक तत्व की उप-सरणी में होने का पता लगाने के लिए, हम इस सूत्र का उपयोग करेंगे (i+1)*(n-i)

इस सूत्र का उपयोग करके, हम प्रत्येक तत्व की घटना की आवृत्ति का पता लगाएंगे और फिर उन तत्वों पर विचार करेंगे जिनकी एक विषम आवृत्ति है, या फिर अंतिम परिणाम प्राप्त करने के लिए।

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

#include <iostream>
using namespace std;
   int xorSubarrayXors(int arr[], int N){
   int result = 0;
   for (int i = 0; i < N; i++){
      int freqency = (i + 1) * (N - i);
      if (freqency % 2 == 1)
         result ^= arr[i];
   }
   return result;
}
int main() {
   int arr[] = {1, 3, 6, 8};
   int N = sizeof(arr) / sizeof(arr[0]);
   cout<<"The xor of all subarray xors is : "<<xorSubarrayXors(arr, N);
   return 0;
}

आउटपुट

The xor of all subarray xors is : 0

  1. C++ में दिए गए नोड के उप-वृक्ष में सभी नोड्स का XOR

    इस समस्या में, हमें एक n ट्री दिया जाता है और कुछ प्रश्न हैं जो ट्री के नोड हैं। हमारा काम दिए गए नोड द्वारा बनाए गए सब-ट्री के सभी नोड्स के XOR को प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, प्रश्न - {1, 6, 5} आउटपुट - 0 0 5 स्पष्टीकरण - 1^6^3^2^4^7^5 6^2^4 5 इस समस्या को हल क

  1. सी++ में अधिकतम सबरे योग मॉड्यूलो एम

    इस समस्या में, हमें n आकार की एक सरणी और एक पूर्णांक m दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो C++ में अधिकतम सबअरे योग मॉड्यूल m ढूंढेगा। कार्यक्रम विवरण - यहां, हम सबएरे के सभी तत्वों के योग को m से विभाजित करके प्राप्त अधिकतम मान प्राप्त करेंगे। समस्या को समझने के लिए एक उदाहरण लेत

  1. C++ में कारकों के सभी संयोजनों को प्रिंट करें

    इस समस्या में, हमें एक संख्या n दी गई है। हमारा कार्य n के गुणनखंडों के सभी संयोजनों को प्रिंट करना है। आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं - Input: 24 Output: 2 2 2 3 2 4 3 8 3 4 6 2 12 इसके लिए हम रिकर्सन फ़ंक्शन का उपयोग करेंगे जो संख्या के कारकों का संयोजन ढूंढेगा। और हम अ