यह देखते हुए कि कार्य निम्नलिखित बाधाओं के साथ संभव बाइनरी मैट्रिक्स में अधिकतम संख्या खोजने के लिए है।
दो पूर्णांक N और X दिए गए हैं जहाँ X<=N. बाइनरी मैट्रिक्स का आकार N*N होना चाहिए और X*X आकार के प्रत्येक उप-मैट्रिक्स में कम से कम एक शून्य होना चाहिए।
आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है -
इनपुट -एन=4, एक्स=2
आउटपुट -12
स्पष्टीकरण - परिणामी मैट्रिक्स होगा -
1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1
इनपुट -एन=7, एक्स=3
आउटपुट - 45
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
अधिकतम संख्या प्राप्त करने के लिए, पहले हमें दिए गए मैट्रिक्स में आवश्यक शून्य की न्यूनतम संख्या ज्ञात करनी होगी।
सभी आव्यूहों में एक समान पैटर्न को देखने से यह देखा जा सकता है कि आवश्यक शून्यों की संख्या =(N / X) 2
तो अधिकतम संख्या =मैट्रिक्स में कुल तत्व - शून्य की संख्या\
-
फंक्शन में MaxOne() एक वेरिएबल Z टाइप इंट बनाएं और उसमें न्यूनतम आवश्यक ज़ीरो स्टोर करें जो कि (N / X) 2 के बराबर हो
-
फिर मैट्रिक्स के कुल आकार को संग्रहीत करने के लिए एक अन्य चर कुल =N*N प्रकार int प्रारंभ करें।
-
फिर अंत में int ans =Total – Z को इनिशियलाइज़ करें ताकि फाइनल आंसर को स्टोर किया जा सके और ans लौटाया जा सके।
उदाहरण
#include <bits/stdc++.h> using namespace std; int MaxOne(int N, int X){ // Minimum number of zeroes that are needed int Z = (N / X); Z = Z * Z; /* Totol elements in matrix = square of the size of the matrices*/ int total =N * N; //Final answer int ans = total - Z; return ans; } int main(){ int N = 4; int X = 2; cout << MaxOne(N, X); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
12