কম্পিউটার টিউটোরিয়াল

C++-এ ম্যাট্রিক্সে সারারো বা সারাকলামের সর্বোচ্চ XOR মান (Maximum XOR Value in Matrix)

এই সমস্যাতে, n×n আকারের একটি ম্যাট্রিক্স দেওয়া থাকে। আমাদের কাজ হল যেকোনো একটি পূর্ণ সারারো (row) বা পূর্ণ সারাকলাম (column) এর XOR মানের সর্বোচ্চ মান বের করা।

উদাহরণ

ইনপুট:

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

আউটপুট:

13

ব্যাখ্যা

Row 1: 4^9^1 = 12
Row 2: 2^8^3 = 9
Row 3: 10^12^11 = 13
Col 1: 4^2^10 = 12
Col 2: 9^8^12 = 13
Col 3: 1^3^11 = 9

সর্বোচ্চ মান হল ১৩।

অপ্টিমাইজড পদ্ধতি

ম্যাট্রিক্স একবার ট্রাভার্স করেই সারারো এবং সারাকলামের XOR বের করা যায়:

  • সারারোয়াইজ ট্রাভার্সাল: matrix[i][j]
  • সারাকলামওয়াইজ ট্রাভার্সাল: matrix[j][i]

C++ প্রোগ্রাম উদাহরণ

#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++-এ অ্যারে থেকে যুগল তৈরি করে সর্বোচ্চ বিটওয়াইজ AND মান

  2. সি++ প্রোগ্রাম: অ্যারেতে ন্যূনতম XOR ভ্যালু পেয়ার খুঁজে বের করা

  3. সি++ প্রোগ্রাম: ম্যাট্রিক্সের প্রতিটি সারিয়ের সর্বোচ্চ উপাদান নির্ণয়

  4. সি++ প্রোগ্রাম: ম্যাট্রিক্সের প্রতিটি কলামের সর্বোচ্চ উপাদান নির্ণয়