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

दो व्यक्तियों द्वारा एकत्रित अधिकतम अंक C++ में एक बार मिलने की अनुमति है

इस ट्यूटोरियल में, हम दो व्यक्तियों द्वारा एक बार मिलने के लिए अधिकतम अंक प्राप्त करने के लिए एक कार्यक्रम पर चर्चा करेंगे

इसके लिए हमें एक मैट्रिक्स प्रदान किया जाएगा जिसमें अंक वाले सेल होंगे। हमारा काम उस रास्ते को खोजना है जब दो कोनों से शुरू होने वाले दो लोग इस तरह मिलते हैं कि उनके पास अधिकतम अंक एकत्र हो रहे हैं।

उदाहरण

#include<bits/stdc++.h>
#define M 3
#define N 3
using namespace std;
int findMaxPoints(int A[][M]) {
   //storing points
   int P1S[M+1][N+1], P1E[M+1][N+1];
   memset(P1S, 0, sizeof(P1S));
   memset(P1E, 0, sizeof(P1E));
   int P2S[M+1][N+1], P2E[M+1][N+1];
   memset(P2S, 0, sizeof(P2S));
   memset(P2E, 0, sizeof(P2E));
   for (int i=1; i<=N; i++)
      for (int j=1; j<=M; j++)
         P1S[i][j] = max(P1S[i-1][j], P1S[i][j-1]) + A[i-1][j-1];
   for (int i=N; i>=1; i--)
      for (int j=M; j>=1; j--)
         P1E[i][j] = max(P1E[i+1][j], P1E[i][j+1]) + A[i-1][j-1];
   for (int i=N; i>=1; i--)
      for(int j=1; j<=M; j++)
         P2S[i][j] = max(P2S[i+1][j], P2S[i][j-1]) + A[i-1][j-1];
   for (int i=1; i<=N; i++)
      for (int j=M; j>=1; j--)
         P2E[i][j] = max(P2E[i-1][j], P2E[i][j+1]) + A[i-1][j-1];
   int ans = 0;
   for (int i=2; i<N; i++) {
      for (int j=2; j<M; j++) {
         int op1 = P1S[i][j-1] + P1E[i][j+1] + P2S[i+1][j] + P2E[i-1][j];
         int op2 = P1S[i-1][j] + P1E[i+1][j] + P2S[i][j-1] + P2E[i][j+1];
         ans = max(ans, max(op1, op2));
      }
   }
   return ans;
}
int main() {
   int A[][M] = {
      {100, 100, 100},
      {100, 1, 100},
      {100, 100, 100}
   };
   cout << "Max Points : " << findMaxPoints(A);
   return 0;
}

आउटपुट

Max Points : 800

  1. सी ++ में एक पेड़ में दो गैर-अंतर्विभाजक पथों का अधिकतम उत्पाद सी ++ में एक पेड़ में दो गैर-अंतर्विभाजक पथों का अधिकतम उत्पाद

    इस समस्या में, हमें n नोड्स के साथ एक अप्रत्यक्ष कनेक्टेड ट्री T दिया जाता है। हमारा कार्य C++ में एक ट्री में दो गैर-अंतर्विभाजकपथों के अधिकतम उत्पाद को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - एक पेड़ में दो अप्रतिच्छेदी पथों का अधिकतम गुणनफल ज्ञात करना। हम सभी गैर-दिलचस्प पथ खोजेंगे

  1. - C++ में एक टीम का अधिकतम प्रदर्शन

    मान लीजिए कि n इंजीनियर हैं। वे 1 से n तक गिने जाते हैं और हमारे पास दो सरणियाँ भी हैं:गति और दक्षता, यहाँ गति [i] और दक्षता [i] ith इंजीनियर के लिए गति और दक्षता का प्रतिनिधित्व करती है। हमें अधिकतम k इंजीनियरों से बनी टीम का अधिकतम प्रदर्शन खोजना होगा। उत्तर बहुत बड़ा हो सकता है इसलिए इसे मॉड्यूलो

  1. सी ++ में एक लाइन पर मैक्स पॉइंट्स सी ++ में एक लाइन पर मैक्स पॉइंट्स

    मान लीजिए कि हमारे पास 2D प्लेन है। हमें एक ही सीधी रेखा पर रहने वाले बिंदुओं की अधिकतम संख्या ज्ञात करनी है। तो अगर अंक इस तरह हैं - फिर 4 अंक होते हैं इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - n :=अंकों की संख्या, यदि n <3 है, तो n लौटाएं उत्तर :=2 मैं के लिए 1 से n - 1 की सीमा