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

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


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

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

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

. होगा

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

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

  • मी =10^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. C++ प्रोग्राम एक ग्रिड में प्रबुद्ध कोशिकाओं की संख्या का पता लगाने के लिए

    मान लीजिए, हमें h * w आयामों का एक ग्रिड दिया गया है। ग्रिड में कोशिकाओं में या तो बल्ब या बाधाएं हो सकती हैं। एक लाइट बल्ब सेल स्वयं को और उसके दाएं, बाएं, ऊपर और नीचे की कोशिकाओं को रोशन करता है और प्रकाश कोशिकाओं के माध्यम से चमक सकता है जब तक कि कोई बाधा सेल प्रकाश को अवरुद्ध न करे। एक बाधा सेल

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

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

  1. हेक्साडेसिमल से दशमलव के लिए C++ प्रोग्राम

    एक इनपुट के रूप में एक हेक्साडेसिमल संख्या के साथ दिया गया, कार्य दिए गए हेक्साडेसिमल संख्या को दशमलव संख्या में परिवर्तित करना है। कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और 0 - 9 के मूल्यों के साथ दर्शाया जाता है जबकि हे