SDUT 2058 三國佚事 巴蜀之危

2021-08-18 01:21:23 字數 1268 閱讀 8737

三國佚事——巴蜀之危

time limit: 1000 ms memory limit: 65536 kib

problem description

話說天下大勢,分久必合,合久必分。。。卻道那魏蜀吳三國鼎力之時,多少英雄豪傑以熱血譜寫那千古之絕唱。古人誠不我欺,確是應了那句「一將功成萬骨枯」。

是夜,明月高懸。諸葛丞相輕搖羽扇,一臉愁苦。原來是日前蜀國戰事吃緊,丞相徹夜未眠,奮筆急書,於每個烽火台寫下安排書信。可想,這戰事多變,丞相運籌 帷幄,給諸多烽火台定下不同計策,卻也實屬不易。

誰成想這送信小廝竟投靠曹操,給諸葛丞相暗中使壞。這小廝將每封書信都投錯了烽火台,居然沒有一封是對的。不多時小廝便被抓住,前後之事卻也明朗。這可急壞了諸葛丞相,這書信傳錯,勢必會讓蜀軍自亂陣腳,不攻自破啊! 諸葛丞相現在想知道被這小廝一亂,這書信傳錯共有多少種情況。

input

題目有多組資料,處理到檔案結尾,丞相共寫了n(1 <= n <= 20)封書信,輸入乙個正數n。
output

輸出書信傳錯的情況數。
sample input

1 3

6sample output

0 2

265

#include 

using

namespace

std;

int main()

信件 1 2 3 4 5 6 7 8

目的地 1 2 3 4 5 6 7 8

我們先給1號分類,它有i-1種可能,這個應該明確,則有(i-1)*(?),我們現在處理

我們假設它給了2,那麼現在再來分配2,這裡有兩種可能:

第一種情況: 2給了1,現在我們再將其排在一起則為

3 4 5 6 7 8

3 4 5 6 7 8

看,這就轉化為[i-2]問題。

第二種情況:假設它不給1,實際上這裡就可以把1當作2本身,因為規定2不可以給2,這裡2沒有,同時不給1,那麼就可以當作自身來處理,很容易得到

2 3 4 5 6 7 8

1 3 4 5 6 7 8

看,這就轉換為[i-1]問題了。

故可得到其遞推公式:arr[i]=(i-1)*(arr[i-1]+(arr[i-2]))明白這個其餘的就很好理解。

SDUT三國佚事 巴蜀之危

這道題目其實是古老的伯努利 尤拉的裝錯信封的問題,也就是錯排問題,那麼什麼是錯排呢?錯排 錯排問題是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。n個元素的錯排數記為d n 研究乙個排列錯排個數的問題,叫做錯排問題...

遞推 SDUT 三國佚事 巴蜀之危

description 話說天下大勢,分久必合,合久必分。卻道那魏蜀吳三國鼎力之時,多少英雄豪傑以熱血譜寫那千古之絕唱。古人誠不我欺,確是應了那句 一將功成萬骨枯 是夜,明月高懸。諸葛丞相輕搖羽扇,一臉愁苦。原來是日前蜀國戰事吃緊,丞相徹夜未眠,奮筆急書,於每個烽火台寫下安排書信。可想,這戰事多變,...

三國佚事 巴蜀之危

problem description 話說天下大勢,分久必合,合久必分。卻道那魏蜀吳三國鼎力之時,多少英雄豪傑以熱血譜寫那千古之絕唱。古人誠不我欺,確是應了那句 一將功成萬骨枯 是夜,明月高懸。諸葛丞相輕搖羽扇,一臉愁苦。原來是日前蜀國戰事吃緊,丞相徹夜未眠,奮筆急書,於每個烽火台寫下安排書信。可...