Number of ways to paint K cells in 3 x N grid such that no P continuous columns are left unpainted
Given three integers N, P and K, the task is to find the number of ways of painting K cells of 3 x N grid such that no adjacent cells are painted and also no continuous P columns are left unpainted.
Note: Diagonal cells are not considered as adjacent cells.
Input: N = 1, P = 3, K = 1
There are 3 ways to paint 1 cell in a 3 x 1 grid.
Input: N = 2, P = 2, K = 2
There are 8 ways to paint 2 cells in a 3×2 grid.
Combinations of cells those are painted is shown below –
1) (0, 0) and (1, 1)
2) (0, 0) and (2, 1)
3) (0, 0) and (2, 0)
4) (1, 0) and (0, 1)
5) (1, 0) and (2, 1)
6) (2, 0) and (0, 1)
7) (2, 0) and (1, 1)
8) (0, 1) and (2, 1)
Approach: The idea is to use Dynamic Programming to solve this problem. As we know from the problem that
column can be painted only when
column is not painted. If
column is not painted then we have following five cases –
- Paint the first Row.
- Paint the second row.
- Paint the third row.
- Paint first and third row.
- Leave the current column if atleast one
- column is painted.
Therefore, using this fact we can solve this problem easily.
Below is the implementation of the above approach:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.