题目:
BZOJ1939(权限题)
分析:
这题很容易看出是DP,但是状态和转移都不是很好想……
用 d p [ l ] [ r ] [ c ] dp[l][r][c] dp[l][r][c]表示在 l l l前面已经新加了 c c c个和 l l l一样的弹子时,使区间 [ l , r ] [l,r] [l,r]消完所需插入的弹子数量
显然,当 c ≥ k − 1 c\geq k-1 c≥k−1时,这 c c c个弹子和 l l l组成了连续的至少 k k k个弹子,这些情况是类似的(都可以一次消完)。因此可以用 c = k − 1 c=k-1 c=k−1的状态代表所有 c ≥ k − 1 c\geq k-1 c≥k−1的状态。
对于状态 ( l , r , k − 1 ) (l,r,k-1) (l,r,k−1), l l l可以和前面 k − 1 k-1 k−1个同色弹子一起消掉,因此只需要考虑要插入多少个才能完全消掉区间 [ l + 1 , r ] [l+1,r] [l+1,r]。这就得到第一个转移:(因为 [ l + 1 , r ] [l+1,r] [l+1,