排錯公式 jobdu 1451

2021-06-21 20:32:02 字數 1562 閱讀 2130

jobdu-題目1451:不容易系列之一

題目描述:

大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了!

做好「一件」事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。

話雖這樣說,我還是要告訴大家,要想失敗到一定程度也是不容易的。比如,我高中的時候,就有乙個神奇的女生,在英語考試的時候,竟然把40個單項選擇題全部做錯了!大家都學過概率論,應該知道出現這種情況的概率,所以至今我都覺得這是一件神奇的事情。如果套用一句經典的評語,我們可以這樣總結:乙個人做錯一道選擇題並不難,難的是全部做錯,乙個不對。

不幸的是,這種小概率事件又發生了,而且就在我們身邊:

事情是這樣的——hdu有個網名叫做8006的男性同學,結交網友無數,最近該同學玩起了浪漫,同時給n個網友每人寫了一封信,這都沒什麼,要命的是,他竟然把所有的信都裝錯了信封!注意了,是全部裝錯喲!

現在的問題是:請大家幫可憐的8006同學計算一下,一共有多少種可能的錯誤方式呢?

輸入:

輸入資料報含多個多個測試例項,每個測試例項占用一行,每行包含乙個正整數n(1輸出:

對於每行輸入請輸出可能的錯誤方式的數量,每個例項的輸出占用一行。

樣例輸入:23

樣例輸出:12

排錯公式。

小明給n

個網友寫信,不巧所有的信都裝錯信封了,問有多少種組合? 信封

mn信n

k記f(n)為n

個信封時的錯裝方式。

情況一:m

不等於k。

此時,交換信封m

與信封n

中的信後,有

(n-1)

個信封錯裝。m有

共n-1

種取值情況,故

f1(n)=(n-1)*f(n-1);

情況二:m==k。

此時,交換信封m

與信封n

中的信後,有

(n-2)

個信封錯裝。m有

共n-1

種取值情況,故

f2(n)=(n-1)*f(n-2);

綜上,f(n)=f1(n)+f2(n)=(n-1)*(f(n-1)+f(n-2))

。f(1)=0.f(2)=1

。這就是著名的排錯公式。

//jobdu-排錯公式-1451-ac

#include

using namespace std;

#define m 21

long long unsigned res,f[m];

int main(int argc, char *argv)

{ f[1]=0;f[2]=1;

for(int n=3;n<=20;n++)

f[n]=(n-1)*(f[n-1]+f[n-2]);

while(cin>>res){

cout<

<

Jobdu 題目1451 不容易系列之一

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

HDU 2068 RPG錯排 錯排公式

1.題意 1到n的序列的排列中,元素位置與元素值相對應的情況 值為i的元素在某個排列中正好排在第i個位置 大於等於序列規模一半的情況,有多少個?2.輸入輸出 每組資料乙個數,n,規定輸入以0結尾 3.分析 原題意換句話說,就是針對1到n的全排列,錯排元素的個數小於等於n的情況有多少 那麼,輸出即為 ...

hdoj 2068 RPG的錯排(錯排公式)

rpg的錯排 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 今年暑假杭電acm集訓隊第一次組成女生隊,其中有一隊叫rpg,但做為集訓隊成員之一的野駱駝竟然不知道rpg三...