题意:
n个盒子(n<=300),每个盒子内装有一个钥匙,(盒子与钥匙一一对应),一开始可以任意打开k个盒子,询问有多大的概率能打开所有盒子。
解析:
首先显然先求出来置换。
之后问题转化为每一个置换至少选一个的方案数(总共选k次)
然后千万不要忘了组合数还可以用浮点数存:)
于是很显然这是个DP
设dp[i][j]表示前i个置换每一个置换至少选1个选了
则dp[i][j]=∑zhihuan[i]l=1dp[i−1][j−l]∗C(zhihuan[i],l)
代码:略