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三...