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

C++ कोड: वैध तरीके से तत्वों को रंगने के लिए रंगों की गणना करें


मान लीजिए हमारे पास n तत्वों की एक सरणी A है। हमें तत्वों को रंगों में रंगना है जैसे कि:

  • यदि हम किसी भी रंग पर विचार करते हैं, तो इस रंग के सभी तत्व उसी रंग के न्यूनतम तत्व से विभाज्य होने चाहिए।

  • उपयोग किए गए रंगों की संख्या न्यूनतम होनी चाहिए।

हमें दी गई सभी संख्याओं को वैध तरीके से रंगने के लिए न्यूनतम रंगों की संख्या ढूंढनी है।

उदाहरण के लिए, यदि इनपुट A = [10, 2, 3, 5, 4, 2] है, तो आउटपुट 3 होगा, क्योंकि पहले रंग को तत्व A[0] और A[3] पर पेंट करें, दूसरे रंग को तत्व A[2] पर पेंट करें और तीसरे रंग को शेष तीन तत्वों पर पेंट करें।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

n := size of A ans := 0 sort the array A for initialize i := 0, when i < n, update (increase i by 1), do:     ok := 1     for initialize j := 0, when j < i, update (increase j by 1), do:         ok := ok AND (1 if A[i] mod A[j] is not 0, otherwise 0)     ans := ans + ok return ans 

उदाहरण

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

#include  using namespace std; int solve(vector A) {     int n = A.size();     int ans = 0;     sort(A.begin(), A.end());     for (int i = 0; i < n; i++)     {         int ok = 1;         for (int j = 0; j < i; j++)             ok &= (A[i] % A[j] != 0);         ans += ok;     }     return ans; } int main() {     vector A = { 10, 2, 3, 5, 4, 2 };     cout << solve(A) << endl; }

इनपुट

{ 10, 2, 3, 5, 4, 2 }

आउटपुट

3

  1. - C++ कोड: जांचें कि दूसरे दिन से पाइल काउंट वैध है या नहीं

    मान लीजिए हमारे पास समान आकार के दो सरणी X और Y हैं। पहले दिन iवें इंडेक्स पर X[i] संख्या में पत्थर हैं और दूसरे दिन iवें इंडेक्स पर Y[i] संख्या में पत्थर हैं। पहले दिन कई सदस्य आए हैं। या तो वे कुछ नहीं करते या वे कुछ ढेर में पत्थर जोड़ते हैं या वे एक ढेर से दूसरे ढेर में पत्थर ले जाते हैं। हमें जा

  1. C++ कोड: रोबोट द्वारा अंतिम स्थिति तक पहुंचने के चरणों की गणना करें C++ कोड: रोबोट द्वारा अंतिम स्थिति तक पहुंचने के चरणों की गणना करें

    मान लीजिए हमारे पास दो निर्देशांक (x1, y1) और (x2, y2) हैं। एक रोबोट बिंदु (x1, y1) पर है और बिंदु (x2, y2) पर जाना चाहता है। एक चरण में, रोबोट अपने 8 आसन्न निर्देशांकों में से एक सेल की ओर बढ़ सकता है। हमें अंतिम स्थिति तक पहुंचने के लिए आवश्यक न्यूनतम चरणों की संख्या ढूंढनी है।उदाहरण के लिए, यदि इ

  1. C++ में तल में समानांतर चतुर्भुजों की गणना C++ में तल में समानांतर चतुर्भुजों की गणना

    हमें एक तल दिया गया है जिसमें समानांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य दिए गए बिंदुओं का उपयोग करके बनने वाले समानांतर चतुर्भुजों की संख्या की गणना करना है। समानांतर चतुर्भुज में एक चतुर्भुज की विपरीत भुजाएँ समानांतर होती हैं और इसलिए विपरीत कोण समान होते हैं। इनपुट - int a[] = {0, 2, 5, 5,