How do you solve the climbing stairs problem, and what is the recurrence?
You can take one step or two steps at a time, and you need to reach the top of a staircase of n steps. The number of ways to reach step k is the number of ways to reach step k minus one plus the number of ways to reach step k minus two, because the last move was either one step or two steps.
That makes the answer the n plus one Fibonacci number, and the base cases are one way to reach step zero and one way to reach step one.
The mechanism is that the two cases partition all the possible routes, so the counts add without double counting. This is a textbook demonstration of the dynamic programming shape: a small state, a recurrence over neighbouring states, and a base case.
The trade-off to name is that the same answer can be produced by very different amounts of work. The naive recursive solution explores exponentially many routes, the bottom up table takes linear time and linear space, and the rolling two variable version takes linear time and constant space. The other point is that a greedy approach does not work here, because choosing the larger step is not always safe: the greedy choice can leave you unable to finish, which is exactly the situation dynamic programming is designed for.