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

दिए गए मैट्रिक्स को जांचने के लिए C++ कोड अच्छा है या नहीं

मान लीजिए हमारे पास एक n x n मैट्रिक्स है। मैट्रिक्स को एक अच्छा मैट्रिक्स कहा जाता है जहां प्रत्येक संख्या 1 के बराबर नहीं होती है जिसे एक ही पंक्ति में एक संख्या और एक ही कॉलम में एक संख्या के योग के रूप में व्यक्त किया जा सकता है। हमें यह जांचना है कि दिया गया मैट्रिक्स अच्छा है या नहीं।

तो, अगर इनपुट पसंद है

1 1 2
2 3 1
6 4 1

तो आउटपुट सही होगा, क्योंकि नीचे बाएं कोने में 6 मान्य है क्योंकि जब इसके ऊपर 2 और दाईं ओर 4 का योग होता है। इस मैट्रिक्स में 1 के बराबर नहीं हर संख्या के लिए समान है।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := size of M
for initialize i := 0, when i < n, update (increase i by 1), do:
   for initialize j := 0, when j < n, update (increase j by 1), do:
      ok := 0
   if M[i, j] is not equal to 1, then:
      c := M[i, j]
   for initialize h := 0, when h < n, update (increase h by 1), do:
      for initialize k := 0, when k < n, update (increase k by 1), do:
         if c is same as M[i, h] + M[k, j], then:
            ok := 1
   if ok is same as 0 and M[i, j] is not equal to 1, then:
      return false
return true

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
bool solve(vector<vector<int>> M){
   int n = M.size();
   int c;
   bool ok;
   for (int i = 0; i < n; i++){
      for (int j = 0; j < n; j++){
         ok = 0;
         if (M[i][j] != 1)
            c = M[i][j];
         for (int h = 0; h < n; h++){
            for (int k = 0; k < n; k++)
               if (c == M[i][h] + M[k][j])
                  ok = 1;
         }
         if (ok == 0 && M[i][j] != 1){
            return false;
         }
      }
   }
   return true;
}
int main(){
   vector<vector<int>> matrix = { { 1, 1, 2 }, { 2, 3, 1 }, { 6, 4, 1 } };
   cout << solve(matrix) << endl;
}

इनपुट

{ { 1, 1, 2 }, { 2, 3, 1 }, { 6, 4, 1 } }

आउटपुट

1

  1. जाँच करें कि दिया गया ट्री ग्राफ C++ में रैखिक है या नहीं

    यहां हम देखेंगे कि कैसे जांचा जाता है कि एक ट्री ग्राफ रैखिक है या नहीं। एक रैखिक वृक्ष ग्राफ को एक पंक्ति में व्यक्त किया जा सकता है, मान लीजिए कि यह एक रैखिक वृक्ष ग्राफ का एक उदाहरण है। लेकिन यह रैखिक नहीं है - यह जांचने के लिए कि ग्राफ रैखिक है या नहीं, हम दो शर्तों का पालन कर सकते हैं यद

  1. यह जांचने के लिए प्रोग्राम कि मैट्रिक्स बाइनरी मैट्रिक्स है या नहीं C++ में

    एक बाइनरी मैट्रिक्स एक मैट्रिक्स है जिसके सभी तत्व बाइनरी मान हैं यानी 0 या 1. बाइनरी मैट्रिक्स को बूलियन मैट्रिक्स, रिलेशनल मैट्रिक्स, लॉजिकल मैट्रिक्स भी कहा जा सकता है। । उदाहरण के नीचे दिया गया $$\शुरू {bmatrix} 0 और 1 और 0 \\ 1 और 1 और 0 \\ 1 और 0 और 1 \\ \end {bmatrix}\:\:\:\:\:\:\:\:\:

  1. C++ प्रोग्राम यह जांचने के लिए कि क्या दिया गया बाइनरी ट्री एक AVL ट्री है या नहीं

    AVL ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जहां सभी नोड्स के लिए बाएं और दाएं सबट्री की ऊंचाई के बीच का अंतर एक से अधिक नहीं हो सकता है। यह एक C++ प्रोग्राम है जो यह जांचने के लिए है कि दिया गया बाइनरी ट्री एक AVL ट्री है या नहीं। एल्गोरिदम Begin function AVL() returns true if the given tree i