কম্পিউটার

বাইনারি ম্যাট্রিক্সে C++ এ 1 হিসাবে কোণ সহ একটি আয়তক্ষেত্র আছে কিনা তা খুঁজুন


ধরুন আমাদের একটি বাইনারি ম্যাট্রিক্স আছে। প্রদত্ত ম্যাট্রিক্সে কোন আয়তক্ষেত্র বা ক্রম আছে কিনা তা আমাদের খুঁজে বের করতে হবে যার চারটি কোণই 1 এর সমান। ম্যাট্রিক্সটি এরকম

৷ ৷ ৷ ৷ ৷ ৷
1 0 0 10
0 0 10 1
0 0 0 10
1 0 10 1

ফলাফল হ্যাঁ হবে। এখানে একটি আয়তক্ষেত্র রয়েছে, যার কোণগুলি 1s সহ।

৷ ৷ ৷
1 0 1
0 10
1 0 1

এটি সমাধান করার জন্য আমরা একটি কার্যকর পদ্ধতি ব্যবহার করব। আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • লাইন দ্বারা উপরের থেকে নীচের লাইন পর্যন্ত ম্যাট্রিক্স স্ক্যান করুন

  • প্রতিটি লাইনের জন্য দুটি 1 এর প্রতিটি সংমিশ্রণ মনে রাখুন এবং এটি একটি হ্যাশ-সেটে পুশ করুন।

  • যদি আমরা পরবর্তী লাইনে আবার সেই সংমিশ্রণটি খুঁজে পাই, আমরা আমাদের আয়তক্ষেত্রটি পাব।

উদাহরণ

#include<iostream>
#include<unordered_set>
#include<unordered_map>
#include<vector>
using namespace std;
bool isRectanglePresent(const vector<vector<int> >& matrix) {
   int rows = matrix.size();
   if (rows == 0)
   return false;
   int columns = matrix[0].size();
   unordered_map<int, unordered_set<int> > table;
   for (int i = 0; i < rows; ++i) {
      for (int j = 0; j < columns - 1; ++j) {
         for (int k = j + 1; k < columns; ++k) {
            if (matrix[i][j] == 1 && matrix[i][k] == 1) {
               if (table.find(j) != table.end() && table[j].find(k) != table[j].end())
                  return true;
               if (table.find(k) != table.end() && table[k].find(j) != table[k].end())
                  return true;
               table[j].insert(k);
               table[k].insert(j);
            }
         }
      }
   }
   return false;
}
int main() {
   vector<vector<int> > matrix = {
      { 1, 0, 0, 1, 0 },
      { 0, 0, 1, 0, 1 },
      { 0, 0, 0, 1, 0 },
      { 1, 0, 1, 0, 1 }
   };
   if (isRectanglePresent(matrix))
      cout << "Rectangle is present";
   else
      cout << "Rectangle is not present";
}

আউটপুট

Rectangle is present

  1. C++ এ প্যারেন্ট পয়েন্টার সহ একটি বাইনারি গাছের ডান ভাইবোন খুঁজুন

  2. C++ প্রোগ্রামের সমস্ত 1s সহ সর্বাধিক আয়তক্ষেত্র বাইনারি সাব-ম্যাট্রিক্স

  3. C++ এ বাইনারি গাছের পাতা খুঁজুন

  4. C++ এ মধ্যবিন্দু ব্যবহার করে আয়তক্ষেত্রের কোণগুলি খুঁজুন