题目链接:https://vjudge.net/problem/Gym-101174D
解题思路:
其实数字是什么根本不重要,因为它们概率是相同的,关键的是在于A和B中卡片个数相同的数量,所以其实我们可以把所有转态压缩成一个10*10*10的三维dp(其实还远远不到这么多)。
所以我们可以将2*C个数分为,m,w,m,2*m + 2*w = 2*C,m表示A的卡片中B没有的个数(所以B中A没有的其实也是m),还有就是w张A和B中都有的。
dp[i][j][k]表示已经拿了i张A中只有的,j张A和B都有的,k张B中只有的情况下,还能再玩的轮数期望。
很明显当i+j==C||k+j==C时,dp[i][j][k] == 0。令tot=(A中的卡片∪B中的卡片),那么我们就有了一个转移方程:
令概率dp[i][j][k]转移到dp[i+a][j+b][k+c]的概率为p[a][b][c],那么: