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

C++ में दिए गए प्रतिबंधों के साथ N*N मैट्रिक्स में अधिकतम 1 की संख्या

दिया गया कार्य निम्नलिखित प्रतिबंधों के साथ एक बाइनरी मैट्रिक्स में अधिकतम 1 की संख्या ढूंढना है।

दो पूर्णांक N और X दिए गए हैं जहां X <= N। बाइनरी मैट्रिक्स का आकार N*N होना चाहिए और आकार X*X के प्रत्येक सब-मैट्रिक्स में कम से कम एक शून्य होना चाहिए।

उदाहरण से समझते हैं

इनपुट - N=4, X=2

आउटपुट - 12

व्याख्या - परिणामी मैट्रिक्स होगा -

1 1 1 1
1 0 0 1
1 0 0 1
1 1 1 1

इनपुट - N=7, X=3

आउटपुट - 45

प्रयुक्त दृष्टिकोण

  • अधिकतम 1 की संख्या प्राप्त करने के लिए, पहले हमें दिए गए मैट्रिक्स में आवश्यक न्यूनतम शून्य की संख्या ढूंढनी होगी।

    सभी मैट्रिक्स में एक सामान्य पैटर्न देखकर, यह देखा जा सकता है कि आवश्यक शून्य की संख्या = (N / X)²

    इसलिए अधिकतम 1 की संख्या = मैट्रिक्स में कुल तत्व - शून्य की संख्या

  • MaxOne() फंक्शन में Z टाइप का एक वेरिएबल बनाएं और इसमें आवश्यक न्यूनतम शून्य की संख्या स्टोर करें जो (N / X)² के बराबर है।

  • फिर total = N*N टाइप का एक और वेरिएबल आरंभ करें मैट्रिक्स का कुल आकार स्टोर करने के लिए।

  • फिर अंत में int ans = total - Z आरंभ करें अंतिम उत्तर स्टोर करने के लिए और ans वापस करें।

C++ प्रोग्राम उदाहरण

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

int MaxOne(int N, int X) {
    // आवश्यक न्यूनतम शून्य की संख्या
    int Z = (N / X);
    Z = Z * Z;
    
    /* मैट्रिक्स में कुल तत्व = मैट्रिक्स के आकार का वर्ग */
    int total = N * N;
    
    // अंतिम उत्तर
    int ans = total - Z;
    return ans;
}

int main() {
    int N = 4;
    int X = 2;
    cout << MaxOne(N, X);
    return 0;
}

आउटपुट

12
  1. - मैट्रिक्स में कैविटी की संख्या खोजें C++ में

    मान लीजिए एक मैट्रिक्स दिया गया है। हमें मैट्रिक्स में कैविटी की संख्या खोजनी है। एक तत्व को कैविटी माना जाता है जब उसके चारों ओर के सभी तत्व उस तत्व से बड़े हों। तो यदि मैट्रिक्स इस तरह है - 456 715 456 तो आउटपुट 1 है। हम बस आसपास के तत्वों की जांच करते हैं और निर्णय लेते हैं। उदाहरण #include &

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

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

  1. - C++ में मैट्रिक्स में दिए गए गुणनफल वाली जोड़ी जांचें

    समस्या विवरण N×M मैट्रिक्स और गुणनफल K दिया गया है। जांचें कि क्या मैट्रिक्स में कोई जोड़ी है जिसका गुणनफल K है। उदाहरण: 4×4 मैट्रिक्स, K=42 → जोड़ी (6, 7) मौजूद है हल: हैशिंग मैट्रिक्स ट्रैवर्स करते हुए हैश सेट में तत्व डालें प्रत्येक तत्व के लिए: यदि K वर्तमान से विभाज्य है और K/वर्तमान सेट मे