কম্পিউটার

C++ এ প্রদত্ত ম্যাট্রিক্সের যেকোনো সাব-ম্যাট্রিক্সের জন্য সর্বাধিক ট্রেস করা সম্ভব


এই সমস্যাটিতে, আমাদেরকে একটি দ্বি-মাত্রিক অ্যারে অ্যারে দেওয়া হয়েছে[][]। আমাদের কাজ হল C++ এ প্রদত্ত ম্যাট্রিক্সের যেকোনো সাব-ম্যাট্রিক্সের জন্য সম্ভাব্য সর্বাধিক ট্রেস খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা

আমাদের যেকোনো সাব-ম্যাট্রিক্সের জন্য সর্বাধিক ট্রেস খুঁজে বের করতে হবে। ট্রেস হল ম্যাট্রিক্সের প্রধান কর্ণের উপাদানগুলির সমষ্টি।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

arr[][] ={{-2, 5, 3},
          {1, 6, 2},
          {4, 3, 9}}

আউটপুট

15

ব্যাখ্যা

For the sub-array: {1, 6}
{9, 3}

সমাধান পদ্ধতি

একটি সহজ সমাধান হল 2-D অ্যারের প্রধান কর্ণের উপাদান ব্যবহার করে সর্বাধিক যোগফল খুঁজে বের করা। ট্রেসটি সর্বাধিক সাব্যারে যোগফল দ্বারা দেওয়া হয়৷

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

#include <iostream>
using namespace std;
#define row 3
#define col 3

int CalcMaxTraceSubMat(int mat[row][col]){
   int maxtraceSum = 0, r, c, traceSum;
   for (int i = 0; i < row; i++){
      for (int j = 0; j < col; j++){
         r = i, c = j, traceSum = 0;
         while (r < row && c < col){
            traceSum += mat[r][c];
            r++;
            c++;
            maxtraceSum = max(traceSum, maxtraceSum);
         }
      }
   }
   return maxtraceSum;
}
int main() {
   int mat[row][col] = { {-2, 5, 6},
                        {1, 6, 2},
                        {4, 3, 9} };

   cout<<"The maximum trace possible for any submatrix is "<<CalcMaxTraceSubMat(mat);
   return 0;
}

আউটপুট

The maximum trace possible for any submatrix is 15

  1. C++ প্রোগ্রাম প্রদত্ত পূর্ণসংখ্যা থেকে সর্বাধিক সম্ভাব্য ট্যালি বের করতে

  2. C++ ব্যবহার করে প্রদত্ত অ্যারের বিটওয়াইজ বা সূচক পরিসরে [L, R] এর জন্য প্রশ্ন

  3. C++ এ প্রদত্ত ম্যাট্রিক্সে 1s এর বর্গাকার সাবম্যাটিক্সের সংখ্যা গণনা করার প্রোগ্রাম

  4. C++ এ একটি গ্রিডে প্রদত্ত দিকের সম্ভাব্য চালগুলি গণনা করুন