第23次CSP-D题解法

状态的表示:

观察到$n,k$很小,抽到已经获得过的卡牌产生的影响相同等性质,自然想到利用状压表示状态,即使用$dp[S][i]$表示已有卡牌集合为$S$,现有硬币数为$i$的概率

状态的转移:

由$dp$数组的意义可得到如下转移方程:

$dp[S][i]=sumlimits_{kin S}(dp[S/{k}][i]+dp[S][i-1])*p[k]$

统计答案:

题目要求期望抽卡次数,考虑在已知$dp$数组的情况下统计答案,易知终止条件为$igeqslant(n-|S|)*k$,终止时抽卡次数为$|S|+i$,由此可求得这一终止状态对期望的贡献$dp[S][i]*(|S|+i)$

时间复杂度$O(2^n*n^2k)$

原文地址:https://www.cnblogs.com/ivanovcraft/p/15382790.html