这题还是看了官方的解题报告才明白怎么做的,动态规划加记忆化搜索。
dp[n][k]代表n个人中有k个人都拿错信件的状态数目,
当n=k=0时:dp[n][k]=1
n=0时:dp[n][k]=0
k=0时:dp[n][k]=n*dp[n-1][k]
否则:dp[n][k]=(n-k)*(dp[n-2][k-1]+dp[n-1][k])+(k-1)*(dp[n-2][k-2]+dp[n-1][k-1])
注意:当k=1时,没有后半部分
这题还是看了官方的解题报告才明白怎么做的,动态规划加记忆化搜索。
dp[n][k]代表n个人中有k个人都拿错信件的状态数目,
当n=k=0时:dp[n][k]=1
n=0时:dp[n][k]=0
k=0时:dp[n][k]=n*dp[n-1][k]
否则:dp[n][k]=(n-k)*(dp[n-2][k-1]+dp[n-1][k])+(k-1)*(dp[n-2][k-2]+dp[n-1][k-1])
注意:当k=1时,没有后半部分