先上题目:http://acm.hdu.edu.cn/showproblem.php?pid=1465
典型的错排问题
设D(n)表示n个数错排的方法数
1.dp推导
假设第i个和第j个元素,将第i个元素放在了第j个元素的位置上
此时第j个元素的放置有两种方法
1.放在i的位置上 这时其余(n-1)个元素错排列,即D(n-1)
2.不放在i的位置上,这时其余(n-2)个元素错排列即D(n-2)
而且j有(n-1)种取法,得到D(n)的递推式 :
D(n)=(n-1)(D(n-1)+D(n-2))
2.容斥原理推导
首先,n个数全排列有n!种情况
然