কম্পিউটার

C++ প্রোগ্রামে উপরে থেকে নীচের দিকে ম্যাট্রিক্সে সর্বাধিক যোগফলের পথ


এই টিউটোরিয়ালে, আমরা উপরে থেকে নীচে পর্যন্ত ম্যাট্রিক্সে সর্বাধিক যোগফলের পথ খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।

এর জন্য আমাদেরকে N*N আকারের একটি ম্যাট্রিক্স দেওয়া হবে। আমাদের কাজ হল উপরের সারি থেকে নীচের সারিতে তির্যক উচ্চ কক্ষে যাওয়ার সময় সর্বাধিক যোগফলের পথ খুঁজে বের করা৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
#define SIZE 10
//finding maximum sum path
int maxSum(int mat[SIZE][SIZE], int n) {
   if (n == 1)
      return mat[0][0];
   int dp[n][n];
   int maxSum = INT_MIN, max;
   for (int j = 0; j < n; j++)
      dp[n - 1][j] = mat[n - 1][j];
   for (int i = n - 2; i >= 0; i--) {
      for (int j = 0; j < n; j++) {
         max = INT_MIN;
         if (((j - 1) >= 0) && (max < dp[i + 1][j - 1])) max = dp[i + 1][j - 1];
            if (((j + 1) < n) && (max < dp[i + 1][j + 1])) max = dp[i + 1][j + 1];
               dp[i][j] = mat[i][j] + max;
      }
   }
   for (int j = 0; j < n; j++)
      if (maxSum < dp[0][j])
         maxSum = dp[0][j];
   return maxSum;
}
int main() {
   int mat[SIZE][SIZE] = {
      { 5, 6, 1, 7 },
      { -2, 10, 8, -1 },
      { 3, -7, -9, 11 },
      { 12, -4, 2, 6 }
    };
   int n = 4;
   cout << "Maximum Sum = " << maxSum(mat, n);
   return 0;
}

আউটপুট

Maximum Sum = 28

  1. C++ এ ম্যাট্রিক্সে সর্বাধিক পাথ যোগফল

  2. C++ এ mXn ম্যাট্রিক্সের উপরের বাম থেকে নীচের ডানদিকে সমস্ত সম্ভাব্য পাথ প্রিন্ট করুন

  3. C++ এ একটি ত্রিভুজে সর্বাধিক পাথ যোগফল

  4. C++ ব্যবহার করে ম্যাট্রিক্সে সর্বোচ্চ যোগফল সহ কলাম খুঁজুন।