কম্পিউটার টিউটোরিয়াল

C++-এ N x 3 গ্রিড রঙ করার পদ্ধতির সংখ্যা


ধরি আমাদের একটি গ্রিড আছে যার আকার n x 3 এবং আমরা গ্রিডের প্রতিটি কক্ষকে তিনটি রঙের যেকোনো একটি দিয়ে রঙ করব। রঙগুলো হল লাল (Red), হলুদ (Yellow) এবং সবুজ (Green)।

এখানে একটি শর্ত আছে: কোনো দুটি আঁচবিক কক্ষের রঙ একই হতে পারবে না। গ্রিডের n টি সারি আছে। আমাদের এই গ্রিড রঙ করার পদ্ধতির সংখ্যা বের করতে হবে। উত্তর বড় হলে 10^9 + 7 দিয়ে মডুলো নেওয়া হবে।

উদাহরণস্বরূপ, যদি ইনপুট হয় 1, তবে আউটপুট হবে 12।

C++-এ N x 3 গ্রিড রঙ করার পদ্ধতির সংখ্যা

সমাধানের ধাপসমূহ

  • m = 10^9 + 7
  • add() ফাংশন সংজ্ঞায়িত করা: এটি a, b নিবে এবং ((a mod m) + (b mod m)) mod m ফেরত দেবে।
  • মেইন মেথড থেকে:
    • a123 := 6, a121 = 6
    • i = 2 থেকে n পর্যন্ত লুপ:
      • b121 := add(3 * a121, 2 * a123)
      • b123 := add(2 * a121, 2 * a123)
      • a121 := b121
      • a123 := b123
    • add(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);
    }
};

int main() {
    Solution ob;
    cout << (ob.numOfWays(3));
}

ইনপুট

3

আউটপুট

246
  1. C++ প্রোগ্রাম: ২×n গ্রিডে বোর্ড রঙ করার উপায়ের সংখ্যা গণনা

  2. C++ প্রোগ্রাম: গ্রিডে আলোকিত কক্ষের সংখ্যা গণনা

  3. C++-এ N×৩ গ্রিড রঙিন করা (Number of Ways to Paint N×3 Grid)

  4. C++ প্রোগ্রাম: হেক্সাডেসিমেল থেকে ডেসিমেল কনভার্সন