使用动态规划解决这个问题,我们需要定义状态和状态转移方程。
状态
定义 dp[i][j] 表示遇到第 i 个店,遇到第 j 个花的情况下的方案数。
状态转移方程
当李白遇到第 i 个店时,他有两种选择:
- 加倍:此时李白还没有遇到第 j 个花,应该从 dp[i - 1][j] 转移过来,方案数为 dp[i - 1][j]。
- 不加倍:此时李白已经遇到了第 j 个花,应该从 dp[i - 1][j - 1] 转移过来,方案数为 dp[i - 1][j - 1]。
因此,当李白遇到第 i 个店时的状态转移方程为:
dp[i][j] = dp[i - 1][j] + dp[i -