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

2-डी स्पेस में बिंदुओं के ट्रिपल जोड़े (ए, बी, सी) की गणना करें जो सी ++ में दी गई शर्त को पूरा करते हैं

हमें 2-डी स्पेस पर एन पॉइंट्स का इनपुट दिया जाता है। लक्ष्य इनपुट से अंकों के तीन गुना की गिनती का पता लगाना है जैसे कि एक बिंदु अन्य दो के बीच की रेखा पर मध्य-बिंदु है। यानी यदि त्रिक (A,B,C) है तो B, A और C (या A,B,C का कोई अन्य संयोजन) का मध्यबिंदु है।

हम एक वेक्टर में सभी बिंदुओं को जोड़े के रूप में सम्मिलित करके ऐसा करेंगे। फिर इस वेक्टर से सभी जोड़े सेट में जोड़ें। समुच्चय से दो बिन्दु लेकर जाँच करें कि क्या (x, y) निर्देशांकों का योग 2 से विभाजित होकर एक ही समुच्चय में है। यदि हाँ, तो तीन गुना वृद्धि करें।

आइए उदाहरणों से समझते हैं।

इनपुट

{ 1,2 }, { 4,2} , { 2,1 } , { 7,2 } N=4 pairs

आउटपुट

Count of triplet pairs that satisfy the given condition are: 1

स्पष्टीकरण

Here {4,2} is mid-point between {1,2} and {7,2}. Only 1 such triplet

इनपुट

{ 1,2 }, { 4,2} , { 2,1 } , { 5,2 }, { 8,1} , {1,1} N=6

आउटपुट

Count of triplet pairs that satisfy the given condition are: 1

स्पष्टीकरण

No such triplet exist

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम प्रकार के जोड़े का एक वेक्टर ले रहे हैं।

  • प्रत्येक जोड़ी में (x, y) निर्देशांक होते हैं।

  • फ़ंक्शन mid_point(vector> vec, int size) एक वेक्टर लेता है और इसका आकार इनपुट के रूप में होता है और मध्य-बिंदु की स्थिति को पूरा करने वाले ट्रिपल की संख्या देता है।

  • ऐसे त्रिक के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • वेक्टर से सभी जोड़ियों को एक सेट<जोड़ी> सेट में डालें। इसमें सभी अद्वितीय बिंदु होंगे।

  • प्रत्येक जोड़ी बिंदुओं के लिए दो लूप के लिए वेक्टर को पार करें।

  • पूर्णांक बिंदु_ए में दोनों बिंदुओं के x निर्देशांक का योग और दोनों बिंदुओं के y निर्देशांक का योग पूर्णांक बिंदु_बी में संग्रहीत करें।

  • यदि बिंदु_ए और बिंदु_बी में ये दोनों योग सम हैं तो मध्य-बिंदु स्थिति की जांच करें।

  • यदि एक जोड़ी (point_A/2,point_B/2) सेट में एक जोड़ी के रूप में मौजूद है, तो इसका मतलब है कि मध्य-बिंदु मौजूद है। ट्रिपलेट की वृद्धि संख्या।

  • अंत में गिनती में तीन गुना संख्या होगी।

  • परिणाम के रूप में लूप के अंत में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int mid_point(vector<pair<int, int>> vec, int size){
   int count = 0;
   set<pair<int, int> > sets;
   for (int i = 0; i < size; i++){
      sets.insert(vec[i]);
   }
   for (int i = 0; i < size; i++){
      for (int j = i + 1; j < size; j++){
         int point_A = vec[i].first + vec[j].first;
         int point_B = vec[i].second + vec[j].second;
         if (point_A % 2 == 0 && point_B % 2 == 0){
            if (sets.find(make_pair(point_A / 2, point_B / 2)) != sets.end()){
               count++;
            }
         }
      }
   }
   return count;
}
int main(){
   vector<pair<int, int>> vec = { { 9, 2 }, { 5, 2 }, { 1, 2 } };
   int size = vec.size();
   cout<<"Count of triplet pairs (A, B, C) of points in 2-D space that satisfy the given condition are: "<<mid_point(vec, size);
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of triplet pairs (A, B, C) of points in 2-D space that satisfy the given condition are: 1

  1. C++ में दिए गए स्ट्रिंग के गैर-अतिव्यापी पैलिंड्रोमिक उप-स्ट्रिंग के जोड़े की गणना करें

    हमें एक स्ट्रिंग के रूप में एक इनपुट दिया जाता है, कार्य दिए गए इनपुट स्ट्रिंग के गैर-अतिव्यापी पैलिंड्रोमिक उप-स्ट्रिंग के जोड़े की संख्या का पता लगाना है। गिरफ्तारी का मान [i] [j] सत्य है यदि विकल्प एक पैलिंड्रोम है, अन्यथा गलत है। हम संयोजन को स्ट्रिंग से बाहर निकालेंगे और जांचेंगे कि क्या जोड़े

  1. C++ में दी गई शर्त को पूरा करने वाले उपसमुच्चय गिनें

    संख्याओं की एक सरणी और इनपुट के रूप में एक पूर्णांक x दिया गया है। लक्ष्य arr[] के सभी उपसमुच्चय को इस प्रकार खोजना है कि उस समुच्चय के अलग-अलग तत्वों के साथ-साथ उनका योग x से पूरी तरह से विभाज्य हो। उदाहरण के लिए इनपुट arr[] = {1,2,3,4,5,6} x=3 आउटपुट Count of subsets that satisfy the given condi

  1. सी ++ में ग्रिड में दी गई दिशा में संभावित चालों की गणना करें

    हम दो चर n और m हैं जो n x m आकार के ग्रिड का प्रतिनिधित्व करते हैं और प्रारंभिक बिंदु x, y से शुरू करते हैं। कदमों/चालों के जोड़े भी दिए गए हैं जिन्हें चाल ((1,1), (2,2)) आदि के रूप में ग्रिड के अंदर ले जाया जा सकता है। चालों की प्रत्येक जोड़ी x,y अक्ष में उठाए गए कदमों की इकाई का प्रतिनिधित्व करत