不容易系列之 4 考新郎

2021-07-26 02:27:47 字數 1203 閱讀 9822



題目描述:

國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做"考新郎",具體的操作是這樣的:

首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排;

然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.

最後,揭開蓋頭,如果找錯了物件就要當眾跪搓衣板...

看來做新郎也不是容易的事情...

假設一共有n對新婚夫婦,其中有m個新郎找錯了新娘,求發生這種情況一共有多少種可能.

input

輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c行資料,每行包含兩個整數n和m(1

output

對於每個測試例項,請輸出一共有多少種發生這種情況的可能,每個例項的輸出佔一行。  

sample input

2

2 23 2

sample output

1

3

思路:可以看出我們需要在n個新郎找出m個新郎找錯新娘,所以需要n的全排列除以m的全排列然後乘以m個人都選不對新娘的種數,設這是一種函式關係為f,那麼會發現從f(4)開始,f[i]=(f[i

-1]+f[i

-2])*(i

-1),所以我們只需算出f(2),f(3)即可。

**如下:

#include

intmain

(),sum,sum1;

intm,n;

inti,j,t;

a[2]=1

,a[3]=2

; for(i=

4;i<=

20;i++)

a[i]=(a[i

-1]+a[i

-2])*(i

-1);

scanf

("%d"

,&m);

while

(m--)

else

for(n=j;n>

1;n--)

sum1*=n;

sum=sum/sum1;

sum*=a[j];

printf

("%lld\n"

,sum);

} }return0;

}

不容易系列之 4 考新郎

國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.最後,揭開蓋頭,如果...

不容易系列之 4 考新郎

國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.最後,揭開蓋頭,如果...

不容易系列之 4 考新郎

國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.最後,揭開蓋頭,如果...