UVA580 危险的组合 Critical Mass
作者:互联网
DP做法:转移的时候只要考虑最后有几个连续的铀盒或者是否已经满足条件。
所以用 $dp_{i,j}$ 表示有考虑了前 $i$ 个盒子,最后有 $j$ 个连续铀盒的方案数。特殊地,当 $j = m$ 时表示前 $i$ 个盒子已经有了连续 $m$ 个铀盒的方案数,其中 $m$ 为需要的连续铀盒数,题目中, $m = 3$。
转移方程:$\begin{cases} dp_{0,0}=1 \\ dp_{i,0} = \sum ^{m-1} _{j = 0} dp_{i-1,j} \\ dp_{i,j} = dp_{i-1,j-1} \\ dp_{i,m} = 2dp_{i-1,m} + dp_{i-1,m-1}\end{cases}$
时间复杂度 $O(nm)$
不难发现 $dp_{i,j}=dp_{i-j,0}$ ,则 $
\begin{cases} dp_{0,0} = dp_{1,0} = 1 \\ dp_{i,0} = 2dp_{i-1,0}-dp_{i-m-1,0} \\ dp_{i,m} = 2dp_{i-1,m} + dp_{i-m,0}\end{cases}$
时间复杂度 $O(n)$
递推做法,$f(n) = 2^{n-3} + \sum ^{n-3}_{i=0} 2^{n-i-3}f(i)$
标签:begin,2dp,复杂度,UVA580,Critical,Mass,cases,sum,dp 来源: https://www.cnblogs.com/Lcyanstars/p/15360892.html