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

C++ में मैट्रिक्स में अधिकतम XOR मान


इस समस्या में, हमें n X n आकार का एक मैट्रिक्स दिया गया है। हमारा काम एक प्रोग्राम बनाना है जो एक पूर्ण पंक्ति या एक पूर्ण कॉलम के अधिकतम XOR मान की गणना करेगा।

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

इनपुट -

N = 3
mat[N][N] = {{4, 9, 1}
{2, 8, 3}
{10, 12, 11}}

आउटपुट -

13

स्पष्टीकरण -

Row1: 4^9^1 = 12
Row2: 2^8^3 = 9
Row3: 10^12^11 = 13
Col1: 4^2^10 = 12
Col2: 9^8^12 = 13
Col3: 1^3^11 = 9

यहां, हमने सभी पंक्तियों और स्तंभों के XOR की गणना की है और फिर उनमें से अधिकतम मुद्रित किया गया है।

इस समस्या को हल करने के लिए, हम मैट्रिक्स की सभी पंक्तियों और स्तंभों के XOR की गणना करेंगे और उनमें से अधिकतम का पता लगाएंगे।

पंक्तियों और स्तंभों के XOR को खोजने का एक तरीका मैट्रिक्स को 2 बार पुनरावृत्त करना है, एक स्तंभों के लिए और दूसरा पंक्तियों के लिए।

लेकिन हम वर्ग मैट्रिक्स पर एक पुनरावृत्ति का उपयोग करके ऐसा ही कर सकते हैं। और एक पंक्ति-वार और दूसरा स्तंभ-वार के लिए।

यह उसी पुनरावृत्ति का उपयोग करके मैट्रिक्स [i] [j] का उपयोग करके पंक्ति-वार मैट्रिक्स को ट्रैवर्स करने के लिए किया जा सकता है [j] [i] कॉलम-वार ट्रैवर्सिंग के लिए

उदाहरण

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

#include<iostream>
using namespace std;
const int MAX = 1000;
int maxRCXOR(int mat[][MAX], int N){
   int rowXOR, colXOR;
   int maxXOR = 0;
   for (int i = 0 ; i < N ; i++){
      rowXOR = 0, colXOR = 0;
      for (int j = 0 ; j < N ; j++){
         rowXOR = rowXOR^mat[i][j];
         colXOR = colXOR^mat[j][i];
      }
      if (maxXOR < max(rowXOR, colXOR))
         maxXOR = max(rowXOR, colXOR);
      }
      return maxXOR;
}
int main() {
   int N = 3;
   int matrix[][MAX]= {
      {4, 9, 1},
      {2, 8, 3},
      {10, 12, 11}
   };
   cout<<"Maximum XOR of all row XOR and Column XOR is "<<maxRCXOR(matrix,N);
   return 0;
}

आउटपुट

Maximum XOR of all row XOR and Column XOR is 13

  1. C++ में न्यूनतम XOR मान युग्म

    समस्या कथन पूर्णांकों की एक सरणी को देखते हुए। जोड़ी को एक सरणी में खोजें जिसमें न्यूनतम XOR मान हो उदाहरण If arr[] = {10, 20, 30, 40} then minimum value pair will be 20 and 30 as (20 ^ 30) = 10. (10 ^ 20) = 30 (10 ^ 30) = 20 (10 ^ 40) = 34 (20 ^ 30) = 10 (20 ^ 40) = 60 (30 ^ 40) = 54 एल्गोरिदम दि

  1. सी ++ में मैट्रिक्स में प्रत्येक पंक्ति का अधिकतम तत्व खोजें

    मान लें कि हमारे पास एक मैट्रिक्स है, हमारा कार्य उस मैट्रिक्स की प्रत्येक पंक्ति के अधिकतम तत्व को खोजना और उन्हें प्रिंट करना है। यह कार्य सरल है। प्रत्येक पंक्ति के लिए, अधिकतम रीसेट करें, और अधिकतम तत्व ढूंढें, और इसे प्रिंट करें। आइए बेहतर समझ के लिए कोड देखें। उदाहरण #include<iostream> #

  1. सी ++ में मैट्रिक्स में प्रत्येक कॉलम का अधिकतम तत्व खोजें

    मान लें कि हमारे पास एक मैट्रिक्स है, हमारा काम उस मैट्रिक्स के प्रत्येक कॉलम के अधिकतम तत्व को ढूंढना और उन्हें प्रिंट करना है। यह कार्य सरल है। प्रत्येक कॉलम के लिए, अधिकतम रीसेट करें, और अधिकतम तत्व ढूंढें, और इसे प्रिंट करें। आइए बेहतर समझ के लिए कोड देखें। उदाहरण #include<iostream> #defin