এই সমস্যাটিতে, আমাদেরকে একটি দ্বি-মাত্রিক অ্যারে অ্যারে দেওয়া হয়েছে[][]। আমাদের কাজ হল 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