Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में मैट्रिक्स में पहली पंक्ति से अंतिम पंक्ति तक अधिकतम योग पथ


मैट्रिक्स दी गई है जहां चालें (i+1, j), (i+1, j-1), (i+1, j+1) हो सकती हैं। पहली पंक्ति के किसी सेल से शुरू करके अंतिम पंक्ति के किसी सेल तक अधिकतम योग पथ खोजें।

DP: dp[i][j] = सेल (i,j) तक अधिकतम योग। पहली पंक्ति आरंभ करें, फिर नीचे की पंक्तियों के लिए तीनों संभावित पूर्ववर्तियों से अधिकतम लें।

उदाहरण 4x4 मैट्रिक्स के लिए अधिकतम योग 120।

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

#define N 4

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
  1. - C++ में N के चार गुणनखंड जिनका गुणनफल अधिकतम हो और योग N के बराबर हो

    मान लीजिए हमारे पास एक पूर्णांक N है। कार्य N के सभी गुणनखंड ढूंढना और N के चार गुणनखंडों का गुणनफल प्रदर्शित करना है, जैसे कि - उनके चार गुणनखंडों का योग N के बराबर हो चार गुणनखंडों का गुणनफल अधिकतम हो मान लीजिए संख्या 24 है, तो गुणनफल 1296 होगा। जैसा कि हम जानते हैं सभी गुणनखंड 1, 2, 3, 4, 6, 8,

  1. - C++ का उपयोग करके मैट्रिक्स में अधिकतम योग वाला कॉलम खोजें

    मान लीजिए हमारे पास M x N आकार का एक मैट्रिक्स है। हमें वह कॉलम ढूंढना है जिसका योग अधिकतम है। इस प्रोग्राम में हम किसी ट्रिकी दृष्टिकोण का पालन नहीं करेंगे, बल्कि सरणी को कॉलम-वार पार करेंगे, प्रत्येक कॉलम का योग प्राप्त करेंगे, और यदि योग अधिकतम है, तो उस योग और कॉलम इंडेक्स को प्रिंट करेंगे। उदा

  1. - C++ में डिवाइड एंड कंकर का उपयोग करके अधिकतम योग सबएरे

    मान लीजिए हमारे पास धनात्मक और ऋणात्मक मानों के साथ डेटा की एक सूची है। हमें सन्निहित सबएरे का योग ढूंढना है जिसका योग सबसे बड़ा है। मान लीजिए सूची में {-2, -5, 6, -2, -3, 1, 5, -6} है, तो अधिकतम सबएरे का योग 7 है। यह {6, -2, -3, 1, 5} का योग है।हम इस समस्या को डिवाइड एंड कंकर विधि का उपयोग करके हल