Solution1 DP
时间复杂度 $O(n)$
空间复杂度 $O(n)$
dp[i][j][k]
表示前 i 天、在 A 为 j 次、末尾连续的 L 为 k 次的方案数
状态转移方程:
当前为 P:此时连续 L 为 0
dp[i][j][0] += dp[i-1][j][k] for j in range(2) for k in range(3)
当前为 L:连续的 L + 1
dp[i][j][k] += dp[i-1][j][k-1] for j in range(2) for k in range(1, 3)
当前为 A:则缺席天数加 1
dp[i][1][k] += dp[i-1][0][k] for k in range(3)
初始状态:
天数为 0,A 和 L 的次数为 0,则只有一种情况,即 "P"
dp[0][0][0] = 1
最后再把最后一天的所有情况加起来即可
Last updated