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

NxN গ্রিডে ন্যূনতম ফলিং পাথ সম C++-তে


সমস্যা বিবরণ

  • NxN আকারের একটি ইন্টিজার ম্যাট্রিক্স A দেওয়া আছে। এর মাধ্যমে ফলিং পাথের ন্যূনতম সম বের করতে হবে।
  • ফলিং পাথ প্রথম সারির যেকোনো এলিমেন্ট থেকে শুরু হয় এবং শেষ সারিতে শেষ হয়।
  • এটি প্রতিটি পরবর্তী সারি থেকে একটি এলিমেন্ট বেছে নেয়। পরবর্তী সারির চয়েস অবশ্যই আগের সারির কলাম থেকে সর্বোচ্চ ১ টি কলাম ভিন্ন হতে পারে।

উদাহরণ

যদি N = 2 এবং ম্যাট্রিক্স হয়: { {5, 10}, {25, 15} } তবে আউটপুট হবে ২০ কারণ এলিমেন্ট ৫ এবং ১৫ নির্বাচিত হয়েছে

উদাহরণ

#include <bits/stdc++.h>
#define MAX 2
using namespace std;
int getMinSumPath(int matrix[MAX][MAX]) {
    for (int row = MAX - 2; row >= 0; --row) {
        for (int col = 0; col < MAX; ++col) {
            int val = matrix[row + 1][col];
            if (col > 0) {
                val = min(val, matrix[row +1][col - 1]);
            }
            if (col + 1 < MAX) {
                val = min(val, matrix[row +1][col + 1]);
            }
            matrix[row][col] = matrix[row][col] + val;
        }
    }
    int result = INT_MAX;
    for (int i = 0; i < MAX; ++i)
        result = min(result, matrix[0][i]);
    return result;
}
int main() {
    int matrix[MAX][MAX] = {
        {5, 10},
        {25, 15},
    };
    cout << "Minimum sum path = " << getMinSumPath(matrix) << endl;
    return 0;
}

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

আউটপুট

Minimum sum path = 20

  1. C++-এ পাথ সম III

  2. C++-এ ম্যাট্রিক্সে সর্বোচ্চ পাথ সাম

  3. ত্রিভুজে ন্যূনতম সম পথ বের করা (C++)

  4. C++ ব্যবহার করে N কে প্যালিনড্রোম সংখ্যাগুলোর যোগফল হিসেবে প্রকাশের ন্যূনতম প্যালিনড্রোম সংখ্যা