Given N boxes each of unit dimension i.e. (1×1 ). The task is to find the total number of different staircases that can be made from those boxes with the following rules:
- Staircase must be in strictly descending order.
- Each staircase contains at least two steps. (Total steps is equal to the breadth of the staircase.)
Input : N = 5
Output : 2
The two staircase are following :
Input : N = 6
Output : 3
The three staircase are following :
If we consider total steps = 2, we can observe the fact that the number of staircase is incremented by 1 if N is incremented by 2. We can illustrate the above thing from the following image :
Now, if total steps is greater than 2 (assume, total steps = K) then we can take this thing as first create a base (base requires boxes equal to the total steps) for staircase and put another staircase on it of steps size K and K – 1 having boxes N – K. (because K boxes already used to create base). Thus, we can solve this problem using bottom-up dynamic programming.
Below is the implementation of the above approach:
Time Complexity: O().
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.
- Color N boxes using M colors such that K boxes have different color from the box on its left
- Color all boxes in line such that every M consecutive boxes are unique
- Total ways of choosing X men and Y women from a total of M men and W women
- Number of visible boxes after putting one inside another
- Count the number of ways to fill K boxes with N distinct items
- Largest number divisible by 90 that can be made using 0 and 5
- Check whether the number can be made perfect square after adding 1
- Number of words that can be made using exactly P consonants and Q vowels from the given string
- Check if X and Y can be made zero by using given operation any number of times
- Check if given array can be made 0 with given operations performed any number of times
- Check whether the number can be made perfect square after adding K
- Check whether the number can be made palindromic after adding K
- Check if number can be made prime by deleting a single digit
- Queries to check if it is possible to join boxes in a circle
- Check if elements of array can be made equal by multiplying given prime numbers
- Check if array sum can be made K by three operations on it
- Minimum Cuts can be made in the Chessboard such that it is not divided into 2 parts
- Queries to check whether all the elements can be made positive by flipping signs exactly K times
- Check if all elements of the given array can be made 0 by decrementing value in pairs
- Check if N and M can be made equal by increasing N by A and decreasing M by B
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.