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

C++ में एक मैट्रिक्स में विषम मान वाले सेल

मान लीजिए कि n और m हैं जो एक मैट्रिक्स के आयाम हैं। इन्हें शून्य से प्रारंभ किया जाता है। और सूचकांक दिए गए हैं जहां सूचकांक [i] =[री, सीआई]। [ri, ci] की प्रत्येक जोड़ी के लिए हमें पंक्ति ri और स्तंभ ci में सभी कक्षों को 1 से बढ़ाना होगा। आउटपुट सभी सूचकांकों में वृद्धि लागू करने के बाद मैट्रिक्स में विषम मानों वाले कक्षों की संख्या होगी।

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

  • अजीब प्रारंभ करें:=0, और x:=मैट्रिक्स की पंक्ति गणना
  • मैट्रिक्स मैट बनाएं
  • मैं के लिए 0 से x की सीमा में
    • r =इनपुट [i, 0], c =इनपुट [i, 1],
    • जे के लिए 0 से मी - 1 की सीमा में
      • mat[r, j] :=mat[r, j] + 1
    • जे के लिए 0 से n - 1 की सीमा में
      • mat[j, c] :=mat[j, c] + 1
  • मैं के लिए 0 से n - 1 की सीमा में
    • जे के लिए:=0 से मी - 1
      • विषम:=विषम + चटाई[i, j] बिटवाइज़ या 1 के साथ
  • विषम वापसी

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
      int oddCells(int n, int m, vector<vector<int>>& in) {
      int odd = 0;
      int x = in.size();
      vector < vector <int> > mat(n, vector <int>(m));
      for(int i = 0; i < x ;i++){
         int r = in[i][0];
         int c = in[i][1];
         for(int j = 0; j < m; j++){
            mat[r][j]++;
         }
         for(int j = 0; j < n; j++){
            mat[j][c]++;
         }
      }
      for(int i = 0; i < n; i++){
         for(int j = 0; j < m; j++)odd += mat[i][j] & 1;
      }
      return odd;
   }
};
main(){
   Solution ob;
   vector<vector<int>> c = {{0,1},{1,1}};
   cout << ob.oddCells(2,3,c);
}

इनपुट

2
3
{{0,1},{1,1}}

आउटपुट

6

  1. सी++ में सर्पिल मैट्रिक्स III

    मान लीजिए कि हमारे पास आर पंक्तियों और सी कॉलम के साथ एक 2 आयामी ग्रिड है, हम पूर्व की ओर (r0, c0) से शुरू करते हैं। यहां, ग्रिड का उत्तर-पश्चिम कोना पहली पंक्ति और स्तंभ पर है, और ग्रिड का दक्षिण-पूर्व कोना अंतिम पंक्ति और स्तंभ पर है। हम इस ग्रिड में हर स्थिति का दौरा करने के लिए एक दक्षिणावर्त सर

  1. जांचें कि दिए गए उत्पाद के साथ एक जोड़ी सी ++ में मैट्रिक्स में मौजूद है या नहीं

    हमारे पास ऑर्डर एन एक्स एम का एक मैट्रिक्स है और एक उत्पाद के। कार्य यह जांचना है कि दिए गए उत्पाद के साथ एक जोड़ी मैट्रिक्स में मौजूद है या नहीं। मान लीजिए कि एक मैट्रिक्स नीचे जैसा है - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 अब यदि K 42 है, तो एक जोड़ी है जैसे (6, 7) इस समस्या को हल करने

  1. जांचें कि क्या मैट्रिक्स सी ++ में उलटा है

    यहां हम देखेंगे कि कैसे जांचना है कि मैट्रिक्स उलटा है या नहीं। यदि एक मैट्रिक्स M है, तो उलटा मैट्रिक्स M-1 होगा - $$M^-1=\frac{adj(M)}{|M\lvert}$$ अतः यदि M का सारणिक शून्येतर है, तो ही हमें व्युत्क्रम प्राप्त हो सकता है, अन्यथा हमें इसका व्युत्क्रम नहीं मिलेगा। तो यहां हमें यह जांचना होगा कि नि