題目描述:
國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做"考新郎",具體的操作是這樣的:
首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排;
然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.
最後,揭開蓋頭,如果找錯了物件就要當眾跪搓衣板...
看來做新郎也不是容易的事情...
假設一共有n對新婚夫婦,其中有m個新郎找錯了新娘,求發生這種情況一共有多少種可能.
input
輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c行資料,每行包含兩個整數n和m(1
output
對於每個測試例項,請輸出一共有多少種發生這種情況的可能,每個例項的輸出佔一行。
sample input
2sample output2 23 2
13
思路:可以看出我們需要在n個新郎找出m個新郎找錯新娘,所以需要n的全排列除以m的全排列然後乘以m個人都選不對新娘的種數,設這是一種函式關係為f,那麼會發現從f(4)開始,f[i]=(f[i-1]+f[i
-2])*(i
-1),所以我們只需算出f(2),f(3)即可。
**如下:
#includeintmain
(),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剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做 考新郎 具體的操作是這樣的 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排 然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.最後,揭開蓋頭,如果...