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

XORed योग का अधिकतम संभव मूल्य खोजने के लिए C++ प्रोग्राम

मान लीजिए कि हमारे पास N तत्वों के साथ एक सरणी A है और दूसरा मान K है। 0 से K तक के पूर्णांक X के लिए, f(X) =(X xor A[1]) + (X xor A[2]) + .. + (एक्स एक्सओआर ए [एन])। हमें f का अधिकतम संभव मान ज्ञात करना है।

इसलिए, यदि इनपुट K =7 जैसा है; A =[1, 6, 3], तो आउटपुट 14 होगा, क्योंकि f(4) =(4 XOR 1) + (4 XOR 6) + (4 XOR 3) =5 + 2 + 7 =14.

कदम

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

n := size of A
for initialize i := 45, when i >= 0, update (decrease i by 1), do:
   p := 2^i
   m := 0
   for initialize j := 0, when j < n, update (increase j by 1), do:
      if A[j] AND p is non-zero, then:
         (increase m by 1)
   if o + p <= k, then:
      if m < n - m, then:
         m := n - m
         o := o + p
   d := d + p * m
return d

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;

long solve(int k, vector<int> A){
   long n = A.size(), d = 0, m, p, o = 0;
   for (long i = 45; i >= 0; i--){
      p = pow(2, i);
      m = 0;
      for (int j = 0; j < n; j++){
         if (A[j] & p)
            m++;
      }
      if (o + p <= k){
         if (m < n - m){
            m = n - m;
            o += p;
         }
      }
      d += p * m;
   }
   return d;
}
int main(){
   int K = 7;
   vector<int> A = { 1, 6, 3 };
   cout << solve(K, A) << endl;
}

इनपुट

7, { 1, 6, 3 }

आउटपुट

14

  1. C++ में बाइनरी ट्री में अधिकतम स्तर का योग खोजें

    इस समस्या में, हमें सकारात्मक और नकारात्मक मानों वाला एक बाइनरी ट्री दिया जाता है। हमारा काम बाइनरी ट्री में अधिकतम स्तर का योग ज्ञात करना है। समस्या का विवरण: हमारे पास एक बाइनरी ट्री है, हम बाइनरी ट्री में सभी स्तरों का योग पाएंगे और फिर उनमें से अधिकतम लौटाएंगे। समस्या को समझने के लिए एक उदाह

  1. C++ प्रोग्राम किसी वर्ण का ASCII मान ज्ञात करने के लिए

    ASCII (अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज) टेबल में 128 कैरेक्टर हैं, जिनका मान 0 से 127 तक है। विभिन्न वर्णों के कुछ ASCII मान इस प्रकार हैं - चरित्र ASCII Value A 65 a 97 Z 90 z 122 $ 36 & 38 ? 63 एक प्रोग्राम जो किसी कैरेक्टर का ASCII मान ढूंढता है, वह इस प्रकार दिया जाता

  1. पायथन में सबसे छोटे समूह का अधिकतम संभव मूल्य खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है। हमें सूची को k सन्निहित समूहों में विभाजित करना होगा। सबसे छोटा समूह वह होता है जिसका योग सभी समूहों में सबसे छोटा होता है। अतः सबसे छोटे समूह का अधिकतम संभव मान ज्ञात कीजिए। इसलिए, यदि इनपुट संख्या =[2, 6, 4, 5,