洛谷 P1595 信封問題 遞推 1 2

2021-08-21 19:31:43 字數 660 閱讀 2954

某人寫了n封信和n個信封,如果所有的信都裝錯了信封。求所有信都裝錯信封共有多少種不同情況。

輸入格式:

乙個信封數n(n<=20)

輸出格式:

乙個整數,代表有多少種情況。

輸入樣例#1

2
輸出樣例#1

1
輸入樣例#2

3
輸出樣例#2

2
用f[i]表示i個數的錯排;

第一步:考慮放第n個元素,有n-1種;

第二步:考慮第k個元素,如果第n放在了位置k,則還有a[i-1]種。否則還有a[i-2]種;

遞推公式:a[i]=(i-1)*(a[i-1]+a[i-2]);

遞推邊界:a[0]=0;a[1]=0;a[2]=1;

#include #include using namespace std;

long long int a[26]=;//超長整形警告

int main()

cout

}

洛谷 P1595 信封問題

想不到刷普及 的題目還真有收穫 解 伯努利錯裝信封問題,公式上!f n n 1 f n 1 f n 2 n表示信封數 演算法分析 首先,f 0 1,f 1 0,f 2 1 當n 2時,設第一封信裝在第二個信封中 有n 1種方法 此時若第二封信裝在第乙個信封中,則剩下的即為n 2錯排問題 f n 2 ...

P1595 信封問題

題目描述 某人寫了n封信和n個信封,如果所有的信都裝錯了信封。求所有信都裝錯信封共有多少種不同情況。輸入格式 乙個信封數n n 20 輸出格式 乙個整數,代表有多少種情況。輸入輸出樣例 輸入 1 輸出 1 輸入 2 輸出 2 include include include include inclu...

洛谷 P1057 遞推

上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 nnn個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師再次吹哨子時,傳球停止,此時,拿著球沒有傳出去的那...