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

N × 3 ग्रिड को C++ में पेंट करने के तरीकों की संख्या


मान लीजिए कि हमारे पास आकार n x 3 का ग्रिड है और हम ग्रिड के प्रत्येक सेल को तीन रंगों में से एक के साथ पेंट करना चाहते हैं। रंग लाल, पीला या हरा हैं। अब एक बाधा है कि दो आसन्न कोशिकाओं का रंग समान नहीं है। हमारे पास ग्रिड की पंक्तियों की संख्या n है। हमें यह पता लगाना है कि हम इस ग्रिड को कितने तरीकों से पेंट कर सकते हैं। उत्तर बहुत बड़ा हो सकता है इसलिए इसे मॉड्यूलो 10^9 + 7 लौटाएं।

तो, अगर इनपुट 1 जैसा है, तो आउटपुट 12

. होगा

N × 3 ग्रिड को C++ में पेंट करने के तरीकों की संख्या

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एम =1^9 + 7

  • फ़ंक्शन ऐड () को परिभाषित करें, इसमें a, b,

    . लगेगा
  • वापसी ((एक मॉड एम) + (बी मॉड एम)) मॉड एम

  • मुख्य विधि से निम्न कार्य करें -

  • a123 :=6, a121 =6

  • इनिशियलाइज़ i :=2 के लिए, जब i <=n, अपडेट (i 1 से बढ़ाएँ), करें -

    • b121:=जोड़ें(3 * a121, 2 * a123)

    • b123:=जोड़ें(2 * a121, 2 * a123)

    • a121 :=b121

    • a123:=b123

  • वापसी जोड़ें(a123, a121)

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
const lli mod = 1e9 + 7;
class Solution {
   public:
   lli add(lli a, lli b){
      return ((a % mod) + (b % mod)) % mod;
   }
   int numOfWays(int n){
      lli a123 = 6, a121 = 6;
      lli b123, b121;
      for (int i = 2; i <= n; i++) {
         b121 = add(3 * a121, 2 * a123);
         b123 = add(2 * a121, 2 * a123);
         a121 = b121;
         a123 = b123;
      }
      return add(a123, a121);
   }
};
main(){
   Solution ob;
   cout << (ob.numOfWays(3));
}

इनपुट

3

आउटपुट

246

  1. सी++ पेंटाटोप नंबर

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

  1. C++ प्रोग्राम में N × 3 ग्रिड को पेंट करने के तरीकों की संख्या

    मान लीजिए कि हमारे पास एक ग्रिड है जिसका आकार n x 3 है और हम ग्रिड के प्रत्येक सेल को तीन रंगों में से एक के साथ पेंट करना चाहते हैं। यहां जिन रंगों का उपयोग किया जाएगा वे हैं लाल, पीला और हरा। अब एक बाधा है, कि दो आसन्न कोशिकाओं का रंग समान नहीं है। हमारे पास ग्रिड की पंक्तियों की संख्या है। अंत म

  1. बेल नंबर - C++ में सेट को पार्टिशन करने के तरीकों की संख्या

    घंटी संख्या n तत्वों के एक सेट को उन सबसेट में विभाजित करने के तरीकों की संख्या को निरूपित करने के लिए उपयोग किया जाता है जो खाली नहीं हैं (यानी कम से कम एक तत्व है)। इस कार्यक्रम में, हमें n तत्वों का एक सेट दिया जाता है और हमें सेट को गैर-रिक्त उपसमुच्चय में विभाजित करने के तरीकों की संख्या ज्ञा