遞推訓練3

2021-10-10 23:22:19 字數 1300 閱讀 2277

(題目**於杭電oj)

problem description

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

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

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

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

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

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

input

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

2

2 23 2

sample output

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...