题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1322
题意简述: ACM牌巧克力共有C中不同颜色的品种。一天,Sandy进行了如下游戏:从一个装满巧克力的袋子(袋中的不同颜色的巧克力是同样多的,且假定巧克力数目足够多),一个一个拿出巧克力放于桌上,如拿出的巧克力与桌上某一个巧克力颜色相同,那么Sandy则将两块全部吃掉。现要求从袋中拿出了N块巧克力后,桌面上还剩余M块巧克力的概率。
解题思路:设dp[n][m]表示取了n块后,剩余m块巧克力的概率。则有:
dp[n][m]=0(n+m为奇数时);dp[n][m]=dp[n-1][m-1]*(c-m+1)/c+dp[n-1][m+1]*(m+1)/c。
方程是出来了,但是看看数据范围,表示肯定不能直接进行动态规划。于是看了一下别人的方法,发现dp[n][m]这个值是收敛的,也就是说当n足够大是dp[n][m]的值变化不大了,于是把自己的加个条件就过了,具体看代码的注释。(后面这部分看别人的,不会证明,数学太弱了)
代码: