এই টিউটোরিয়ালে, আমরা 0-তম সারির যেকোন সেল দিয়ে শুরু করে (N-1)-ম সারির যেকোন সেল দিয়ে শেষ করার জন্য সর্বাধিক পাথ যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব
এর জন্য আমাদেরকে (i+1, j), (i+1, j-1), (i+1, j+1) সম্ভাব্য চাল সহ একটি ম্যাট্রিক্স প্রদান করা হবে। আমাদের কাজ হল শূন্য অবস্থান থেকে শুরু করা এবং সর্বাধিক যোগফলের পথ খুঁজে শেষ সারিতে যাওয়া।
উদাহরণ
#include<bits/stdc++.h> using namespace std; #define N 4 //finding maximum sum path int MaximumPath(int Mat[][N]) { int result = 0 ; int dp[N][N+2]; memset(dp, 0, sizeof(dp)); for (int i = 0 ; i < N ; i++) dp[0][i+1] = Mat[0][i]; for (int i = 1 ; i < N ; i++) for (int j = 1 ; j <= N ; j++) dp[i][j] = max(dp[i-1][j-1], max(dp[i-1][j], dp[i-1][j+1])) + Mat[i][j-1] ; for (int i=0; i<=N; i++) result = max(result, dp[N-1][i]); return result ; } int main() { int Mat[4][4] = { { 4, 2 , 3 , 4 }, { 2 , 9 , 1 , 10}, { 15, 1 , 3 , 0 }, { 16 ,92, 41, 44 } }; cout << MaximumPath ( Mat ) <<endl ; return 0; }
আউটপুট
120