GNY07H - Tiling a Grid With Dominoes - SPOJ Solution C++

  Problem Link : GNY07H 


👉 Hint : Simple 2D DP

 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int

int main()
{
	int t;
	cin>>t;
	ll dp[1001][16];
	for(int k=1;k<=t;k++)
	{
		int n;
		cin>>n;
		for(int i=0;i<16;i++)
		{
			dp[0][i]=0;
			dp[1][i]=0;
		}
		dp[1][15]=1;
		dp[1][6]=1;
		dp[1][3]=1;
		dp[1][12]=1;
        dp[0][15]=1;
		for(int i=2;i<=n;i++)
		{
			dp[i][15]=dp[i-1][15]+dp[i-2][15]+dp[i-1][12]+dp[i-1][6]+dp[i-1][3];
			dp[i][6]=dp[i-1][15]+dp[i-1][9];
			dp[i][9]=dp[i-1][6];
			dp[i][3]=dp[i-1][15]+dp[i-1][12];
			dp[i][12]=dp[i-1][15]+dp[i-1][3];
		}
		cout<<k<<" "<<dp[n][15]<<"\n";



	}
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!