(題目**於杭電oj)
problem description
國慶期間,省城hz剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有乙個有意思的節目,叫做"考新郎",具體的操作是這樣的:
首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排;
然後,讓各位新郎尋找自己的新娘.每人只准找乙個,並且不允許多人找乙個.
最後,揭開蓋頭,如果找錯了物件就要當眾跪搓衣板…
看來做新郎也不是容易的事情…
假設一共有n對新婚夫婦,其中有m個新郎找錯了新娘,求發生這種情況一共有多少種可能.
input
輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c行資料,每行包含兩個整數n和m(1sample input
2sample output2 23 2
1思路:3
先利用遞推訓練2中(有錯排的詳細講解在此不過多複述)的錯排公式
f(n)=(n-1)*(f(n-1)+f(n-2))
在此多了一項工作,那就是求n對新婚人中的m個新郎挑錯了,即多了從n個中無排序的挑m個
公式(組合)=m!/(n!*(n-m)!)
錯排中人不一樣也算不同的情況
所以 最後是f(n)*組合公式
#include
long
long
intfun
(long
long
int n,
long
long
int m)
//當然用int也可以
;//錯排的可能
fang[1]
=0; fang[2]
=1;for
(int r=
3;r<
22;r++
) fang[r]
=(r-1)
*(fang[r-1]
+fang[r-2]
);return fang[m]
*now;
//錯排中人的不一樣也算一種方法
}int
main
(void
)return0;
}
遞迴遞推訓練 E
題目要求 一對成熟的兔子每天能產下一對小兔子,每次生一公一母,每只小兔子的成熟期是1天,小兔子一天後成熟可生小兔子,某人領養了一對成熟的兔子,一公一母,第n天後得到多少對兔子。題目思路 定義陣列a代表成熟母兔子的數量,陣列b代表小兔子的數量,每天的小兔子數量等於前一天母兔子的數量,母兔子的數量等於前...
遞推訓練(基礎演算法)
題目 於杭電oj problem description 人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題 有排成一行的 個方格,用紅 red 粉 pi...
偶數個3 遞迴 遞推
目錄 n 1時 偶數個3有8個 即未出現3 奇數個有1個。n 2時 對於十位,如果為3,則個位為3.如果不為3,則個位也不為3,且這種情況有9種,乘法原理 f n 表示n位數時偶數個3的個數 g n 表示n位數時奇數個3的個數 f 1 8,g 1 1 假設已經知道f n 1 g n 1 求f n 1...