這個題目沒有想出來,最後不得不看了別人的結題報告。知道了這是乙個關於錯排的題目,有根據別人的思路,推到了一下公式,才開始自己實現**。反正我一見到排列組合的題目腦袋就會一團漿糊,可能高中時候就沒有學好。
假設前n-1個都已經是錯排了,總共有f(n-1)種。那麼,把第n個放到這個錯排中,會有兩種情況:
第一:與n的位置交換。假設將第n個元素放在某一位置m,m位置的元素放在n的位置。這樣的方法有(n-1)*f(n-1)種
第二:與n交換後的m位置的元素不放在n的位置。這樣的方法有(n-1)*f(n-2)中
所以,總共有(n-1)*(f(n-1)*f(n-2))種方法。
實現**如下:
#includedouble a[100] = ;
double f(int n)
else if(n == 2)
else
}}long long b(int n)
int main(void)
}return 0;
}
這是從網上看到的簡單**:
#include int main()
; double b[21]=;
for(i=3;i<=21;i++)
scanf("%d",&n);
while(n--)
return 0;
}
HDOJ 2048 神 上帝以及老天爺
題目敘述 hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字條 最後,如果取得的字條上寫的...
hdoj2048 神 上帝以及老天爺
include int main for int i 2 i n i ans 100.0 a n b n printf 2f n ans return 0 已ac a 2 a 3 很容易就能推出來。然後a 4 之後。就像是在編號1 n的盒子中放編號1 n的小球並且小球的編號不能與盒子的編號相等,每增...
HDOJ 2048 神 上帝及老天爺(錯排)
hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字條 最後,如果取得的字條上寫的就是自己的...