杭電 2048 錯排問題

題目來源 :http://acm.hdu.edu.cn/showproblem.php?pid=2048

神、上帝以及老天爺

Problem Description

HDU 2006'10 ACM contest的頒獎晚會隆重開始了!

為了活躍氣氛匣沼,組織者舉行了一個別開生面缆八、獎品豐厚的抽獎活動,這個活動的具體要求是這樣的:

首先,所有參加晚會的人員都將一張寫有自己名字的字條放入抽獎箱中湘捎;

然后尿招,待所有字條加入完畢矾柜,每人從箱中取一個字條;

最后就谜,如果取得的字條上寫的就是自己的名字怪蔑,那么“恭喜你,中獎了丧荐!”

大家可以想象一下當時的氣氛之熱烈缆瓣,畢竟中獎者的獎品是大家夢寐以求的Twins簽名照呀!不過虹统,正如所有試圖設計的喜劇往往以悲劇結(jié)尾弓坞,這次抽獎活動最后竟然沒有一個人中獎!

我的神窟却、上帝以及老天爺呀昼丑,怎么會這樣呢?

不過夸赫,先不要激動菩帝,現(xiàn)在問題來了,你能計算一下發(fā)生這種情況的概率嗎茬腿?

不會算呼奢?難道你也想以悲劇結(jié)尾?切平!


Input

輸入數(shù)據(jù)的第一行是一個整數(shù)C,表示測試實例的個數(shù)握础,然后是C 行數(shù)據(jù),每行包含一個整數(shù)n(1


Output

對于每個測試實例悴品,請輸出發(fā)生這種情況的百分比禀综,每個實例的輸出占一行, 結(jié)果保留兩位小數(shù)(四舍五入)简烘,具體格式請參照sample output。


Sample Input

1

2


Sample Output

50.00%

思路:

一開始看到問題我就懵了定枷,這個好像是排列組合的問題好多情況啊覺得孤澎,自己想了好久沒有想到怎么做,被迫看了一下discuss欠窒,然后發(fā)現(xiàn)有個什么錯排公式覆旭;然后自己百度了一下錯排公式;具體可以看下它是這樣子說的

錯排問題

n個有序的元素應有n!個不同的排列岖妄,如若一個排列使得所有的元素不在原來的位置上型将,則稱這個排列為錯排;有的叫重排荐虐。

如七兜,1 2的錯排是唯一的,即2 1缚俏。1 2 3的錯排有31 2惊搏,2 3 1贮乳。這二者可以看作是1 2錯排忧换,3分別與1、2換位而得的向拆。

遞歸關(guān)系

為求其遞推關(guān)系亚茬,分兩步走:

第一步,考慮第n個元素浓恳,把它放在某一個位置刹缝,比如位置k,一共有n-1種放法颈将;

第二步梢夯,考慮第k個元素,這時有兩種情況:(1)把它放到位置n晴圾,那么對于除n以外的n-1個元素颂砸,由于第k個元素放到了位置n,所以剩下n-2個元素的錯排即可死姚,有

Dn-2種放法人乓;(2)第k個元素不放到位置n,這時對于這n-1個元素的錯排都毒,有Dn-1種放法色罚。

根據(jù)乘法和加法法則,綜上得到Dn=(n-1)(Dn-1+Dn-2)

特殊地账劲,D1=0,D2=1;

看不懂也沒有關(guān)系 這里有個很詳細的解釋?點我

現(xiàn)在有了錯排公式后戳护,這個題目就可以很簡單的解決了

這里有兩點是我學到的

1 對于這些遞歸解決的問題構(gòu)造遞歸函數(shù)會占好多內(nèi)存空間金抡;可以改成數(shù)組賦值這樣會快很多;

2 對于斐波那契數(shù)列遞歸到后面數(shù)值會很大腌且;所以要把數(shù)組定義為 long long


代碼如下

# include <stdio.h>

long long JC (int i);

int main ()

{

int n=0,i=1;

long long a[25]={0,0,1};

for (i=3;i<=20;i++)

a[i]=(i-1)*(a[i-1]+a[i-2]);

scanf ("%d",&n);

while (n--)

{

scanf ("%d",&i);

printf ("%.2lf%%\n",(double)a[i]/JC(i)*100);

}

return 0;

}

long long JC (int i)

{

long long sum=1;

for (int j=2;j<=i;j++)

sum*=j;

return sum;

}



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竟终,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子切蟋,更是在濱河造成了極大的恐慌统捶,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柄粹,死亡現(xiàn)場離奇詭異喘鸟,居然都是意外死亡,警方通過查閱死者的電腦和手機驻右,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門什黑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堪夭,你說我怎么就攤上這事愕把。” “怎么了森爽?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵恨豁,是天一觀的道長。 經(jīng)常有香客問我爬迟,道長橘蜜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任付呕,我火速辦了婚禮计福,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徽职。我一直安慰自己象颖,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布姆钉。 她就那樣靜靜地躺著说订,像睡著了一般。 火紅的嫁衣襯著肌膚如雪育韩。 梳的紋絲不亂的頭發(fā)上克蚂,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音筋讨,去河邊找鬼埃叭。 笑死,一個胖子當著我的面吹牛悉罕,可吹牛的內(nèi)容都是我干的赤屋。 我是一名探鬼主播立镶,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼类早!你這毒婦竟也來了媚媒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤涩僻,失蹤者是張志新(化名)和其女友劉穎缭召,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逆日,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嵌巷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了室抽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搪哪。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坪圾,靈堂內(nèi)的尸體忽然破棺而出晓折,到底是詐尸還是另有隱情,我是刑警寧澤兽泄,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布漓概,位于F島的核電站,受9級特大地震影響已日,放射性物質(zhì)發(fā)生泄漏垛耳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一飘千、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栈雳,春花似錦护奈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛀骇,卻和暖如春厌秒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背擅憔。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工鸵闪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暑诸。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓蚌讼,卻偏偏與公主長得像辟灰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子篡石,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356