Given a 3 x n board, find the number of ways to fill it with 2 x 1 dominoes.
Following are all the 3 possible ways to fill up a 3 x 2 board.
Here is one possible way of filling a 3 x 8 board. You have to find all the possible ways to do so.
Input : 2 Output : 3 Input : 8 Output : 153 Input : 12 Output : 2131
At any point while filling the board, there are three possible states that the last column can be in:
An = No. of ways to completely fill a 3 x n board. (We need to find this) Bn = No. of ways to fill a 3 x n board with top corner in last column not filled. Cn = No. of ways to fill a 3 x n board with bottom corner in last column not filled.
Note: The following states are impossible to reach:
Note: Even though Bn and Cn are different states, they will be equal for same ‘n’. i.e Bn = Cn
Hence, we only need to calculate one of them.
Final Recursive Relations are:
- Tiling Problem
- Sum of the multiples of two numbers below N
- How can one become good at Data structures and Algorithms easily?
- Maximum sum by picking elements from two arrays in order
- Number of Binary Strings of length N with K adjacent Set Bits
- Reduce the array to a single element with the given operation
- Maximum sum of all elements of array after performing given operations
- Find the minimum positive integer such that it is divisible by A and sum of its digits is equal to B
- Range Sum Queries and Update with Square Root
- Level with maximum number of nodes using DFS in a N-ary tree
- Smallest Greater (than S) String of length K whose letters are subset of S
- Check if item can be measured using a scale and some weights
- Number of Paths of Weight W in a K-ary tree
- Number of triangles that can be formed with given N points
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.