國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做"考新郎",具體的操作是這樣的:
首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排;
然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.
最後,揭開蓋頭,如果找錯了物件就要當眾跪搓衣板…
看來做新郎也不是容易的事情…
假設一共有n對新婚夫婦,其中有m個新郎找錯了新娘,求發生這種情況一共有多少種可能.
input
輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c行資料,每行包含兩個整數n和m(1我的第一條錯排題,上概念補充一下知識先。。
全錯排的遞推公式為:
f
(n)=(f
(n -1)
+f(n -2)
)*(n -1)
;f(1
)=0;
f(2)
=1;
先解釋一下全錯排哈,1個錯排顯然是0,兩個錯排顯然是1 互換嘛,
當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用d(n)表示,那麼d(n-1)就表示n-1個編號元素放在n-1個編號位置,各不對應的方法數,其它類推.
第一步,把第n個元素放在乙個位置,比如位置k,一共有n-1種方法;
第二步,放編號為k的元素,這時有兩種情況:⑴把它放到位置n,那麼,對於剩下的n-1個元素,由於第k個元素放到了位置n,剩下n-2個元素就有d(n-2)種方法;⑵第k個元素不把它放到位置n,這時,對於這n-1個元素,有d(n-1)種方法;
綜上得到
d(n) = (n-1) [d(n-2) + d(n-1)]
特殊地,d(1) = 0, d(2) = 1.
下面通過這個遞推關係推導通項公式:
為方便起見,設d(k) = k! n(k), k = 1, 2, …, n,
則n(1) = 0, n(2) = 1/2.
n ≥ 3時,n! n(n) = (n-1) (n-1)! n(n-1) + (n-1)! n(n-2)
即 nn(n) = (n-1) n(n-1) + n(n-2)
於是有n(n) - n(n-1) = - [n(n-1) - n(n-2)] / n = (-1/n) [-1/(n-1)] [-1/(n-2)]…(-1/3) [n(2) - n(1)] = (-1)^n / n!.
因此n(n-1) - n(n-2) = (-1)^(n-1) / (n-1)!,
n(2) - n(1) = (-1)^2 / 2!.
相加,可得
n(n) = (-1)^2/2! + … + (-1)^(n-1) / (n-1)! + (-1)^n/n!
因此d(n) = n! [(-1)^2/2! + … + (-1)^(n-1)/(n-1)! + (-1)^n/n!].
此即錯排公式。
其實說了好多廢話 不好理解 個人覺得容斥原理更容易接受 一看就懂哦
用容斥原理也可以推出錯排公式:
正整數1, 2, 3, ……, n的全排列有 n! 種,其中第k位是k的排列有 (n-1)! 種;當k分別取1, 2, 3, ……, n時,共有n*(n-1)!種排列是至少放對了乙個的,由於所求的是錯排的種數,所以應當減去這些排列;但是此時把同時有兩個數不錯排的排列多排除了一次,應補上;在補上時,把同時有三個數不錯排的排列多補上了一次,應排除;……;繼續這一過程,得到錯排的排列種數為
d(n) = n! - n!/1! + n!/2! - n!/3! + … + (-1)^n*n!/n! = ∑(k=2~n) (-1)^k * n! / k!,
即d(n) = n! [1/0! - 1/1! + 1/2! - 1/3! + 1/4! + … + (-1)^n/n!].
其中,∑表示連加符號,k=2~n是連加的範圍;0! = 1,可以和1!相消。
扯了這麼多 有了公式 直接上手題目拉
**如下:
#include
using
namespace std;
intc
(int a,
int b)
intmain()
}
HDU 2049 考新郎 遞推 錯排
problem description 國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並...
HDU 2049考新郎 錯排題 組合數學
problem description 國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並...
HDU 2049 錯排變種
不容易系列之 4 考新郎 problem description 國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己...