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

C++ में द्विभाजित ग्राफ में अधिकतम एज की संख्या


समस्या कथन

एक पूर्णांक N दिया गया है जो शीर्षों की संख्या दर्शाता है। कार्य N शीर्षों के द्विभाजित ग्राफ में संभव अधिकतम एज की संख्या ढूंढना है।

द्विभाजित ग्राफ

  • एक द्विभाजित ग्राफ वह है जिसमें शीर्षों के 2 सेट होते हैं।
  • सेट ऐसे होते हैं कि एक ही सेट के शीर्ष कभी भी उनके बीच एज साझा नहीं करेंगे।

उदाहरण

यदि N = 10 तो कुल 25 एज होंगे -

  • दोनों सेट में 5 शीर्ष होंगे और पहले सेट का प्रत्येक शीर्ष दूसरे सेट के हर दूसरे शीर्ष से जुड़ा होगा
  • इसलिए कुल एज 5 * 5 = 25 होंगे

एल्गोरिदम

  • एज की संख्या अधिकतम होगी जब किसी दिए गए सेट का प्रत्येक शीर्ष दूसरे सेट के हर दूसरे शीर्ष से जुड़ा हो यानी एज = m * n जहां m और n दोनों सेट में एज की संख्या हैं
  • एज की संख्या को अधिकतम करने के लिए, m, n के बराबर या जितना संभव हो उतना करीब होना चाहिए
  • इसलिए, अधिकतम एज की संख्या निम्न सूत्र से निकाली जा सकती है -

(n * n) / 4

उदाहरण

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

int getMaxEdges(int n) {
    return floor((n * n) / 4);
}

int main() {
    int n = 7;
    cout << "Maximum edges = " << getMaxEdges(n) << endl;
    return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को कंपाइल और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Maximum edges = 12

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. C++ में अधिकतम मोड़ों वाला पथ लंबाई C++ में अधिकतम मोड़ों वाला पथ लंबाई

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया गया है। अब हमें अधिकतम संख्या में मोड़ों वाला पथ खोजने की आवश्यकता है। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिएइनपुट -आउटपुट -6अब इस दृष्टिकोण में, हम ट्री को पार करेंगे और पिछली गतिविध

  1. C++ में अनिर्देशित ग्राफ (Undirected Graph) में किनारों (edges) की गिनती C++ में अनिर्देशित ग्राफ (Undirected Graph) में किनारों (edges) की गिनती

    समस्या विवरण एक अनिर्देशित ग्राफ (undirected graph) दिया गया है। हमें ग्राफ में कुल किनारों (edges) की संख्या गिननी है। अनिर्देशित ग्राफ में सभी किनारे द्विदिश (bidirectional) होते हैं। दृश्य प्रतिनिधित्व उदाहरण इनपुट किनारे: (0,1), (0,2), (1,2), (1,4), (2,4), (2,3), (3,4) आउटपुट किनारों की संख्