HDU1465 錯排經典題目

2021-06-08 19:00:44 字數 574 閱讀 7398

題問:給n個人信件全部轉錯信封的情況的總數;

這裡詳解一下這條公式是怎麼推出來的!

首先,f(n)代表n封信件全部裝錯的情況數。

假設有100個信件需要投遞,。那麼我把信件分成兩部分:99封  和  1封;

我把這99封信給其中乙個人a,讓他交給其餘的人(其中包裹他自己的信)。有 (n - 1)種送法。

而剩下這「1封」信有兩種情況:

1.剛好是 a 的信。那麼剩下99封信就沒有a的信,他可以隨便裝,有f(n - 1)中裝錯的方法。

2.不是a的信。那麼他就必須把自己的那封信取出來,那麼就剩下98封信他可以隨便裝,有f(n - 2)中裝錯的方法。

所以,  得出公式  f(n) = (n-1) *( f(n-1) + f(n-2));

**:#includeusing namespace std;

#define maxn 22

_int64 list[maxn];

void init() {

list[2] = 1;

list[3] = 2;

for (int i=4; i>n) {

cout<

hdu1465(放錯信 錯排公式)

problem description 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了!做好 一件 事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。話雖這樣說,我還是要告訴大家,要想失敗到一定程度也是不容易的。比如,我高中的時候,就有乙個...

hdu1465(放錯信 錯排公式)

problem description 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了!做好 一件 事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。話雖這樣說,我還是要告訴大家,要想失敗到一定程度也是不容易的。比如,我高中的時候,就有乙個...

不容易系列之一 HDU 1465 (錯排公式)

hdu 1465 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了!做好 一件 事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。話雖這樣說,我還是要告訴大家,要想失敗到一定程度也是不容易的。比如,我高中的時候,就有乙個神奇的女生,在英語考試...