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

C++-এ বাইনারি ম্যাট্রিক্সের সব এলিমেন্ট ১ করার জন্য মিনিমাম অপারেশন


সমস্যা বিবরণ

N রো এবং M কলামের একটি বাইনারি ম্যাট্রিক্স দেওয়া আছে। ম্যাট্রিক্সে অনুমোদিত অপারেশন হলো যেকোনো ইনডেক্স (x, y) বেছে নেওয়া এবং (0, 0) থেকে (x-1, y-1) পর্যন্ত আয়তক্ষেত্রের সব এলিমেন্ট টগল করা। টগল মানে ১ কে ০ এবং ০ কে ১ করা। টাস্ক হলো মিনিমাম অপারেশন বের করা যাতে ম্যাট্রিক্সের সব এলিমেন্ট ১ হয়।

উদাহরণ

ইনপুট ম্যাট্রিক্স: 
{0, 0, 0, 1, 1} 
{0, 0, 0, 1, 1} 
{0, 0, 0, 1, 1} 
{1, 1, 1, 1, 1} 
{1, 1, 1, 1, 1} 
তब উত্তর ১

একটি মুভে (3, 3) বেছে নিলে পুরো ম্যাট্রিক্স শুধু ১ দিয়ে গঠিত হবে।

অ্যালগরিদম

আইডিয়া হলো এন্ড পয়েন্ট (N-1, M-1) থেকে শুরু করে ম্যাট্রিক্স রিভার্স অর্ডারে ট্রাভার্স করা। যেকোনো সেলে ০ পাওয়া গেলে সেটি ফ্লিপ করুন।

উদাহরণ

#include <iostream> 
#define ROWS 5 
#define COLS 5 
using namespace std; 

int getMinOperations(bool arr[ROWS][COLS]) { 
    int ans = 0; 
    for (int i = ROWS - 1; i >= 0; i--) { 
        for (int j = COLS - 1; j >= 0; j--) { 
            if (arr[i][j] == 0) { 
                ans++; 
                for (int k = 0; k <= i; k++) { 
                    for (int h = 0; h <= j; h++) { 
                        if (arr[k][h] == 1) 
                            arr[k][h] = 0; 
                        else 
                            arr[k][h] = 1; 
                    } 
                } 
            } 
        } 
    } 
    return ans; 
} 

int main() { 
    bool mat[ROWS][COLS] = { 
        0, 0, 1, 1, 1, 
        0, 0, 0, 1, 1, 
        0, 0, 0, 1, 1, 
        1, 1, 1, 1, 1, 
        1, 1, 1, 1, 1 
    }; 
    cout << "Minimum required operations = " << getMinOperations(mat) << endl; 
    return 0; 
}

আউটপুট

যখন আপনি উপরের প্রোগ্রাম কম্পাইল ও এক্সিকিউট করবেন। এটি নিচের আউটপুট জেনারেট করবে:

Minimum required operations = 3

  1. সি++-এ বাইনারি ম্যাট্রিক্সে প্রতিটি সেল থেকে নিকটতম ১-এর দূরত্ব

  2. C++-এ ম্যাট্রিক্সের সব রোয়ে কমন ভিন্ন উপাদান খুঁজে বের করা

  3. সি++-এ বাইনারি ম্যাট্রিক্সকে শূন্য ম্যাট্রিক্সে রূপান্তর করার জন্য ন্যূনতম ফ্লিপ সংখ্যা

  4. C++-এ দুটি বাইনারি সার্চ ট্রির সব উপাদান