傳送門
把題目中的求概率改成求比例,那就是求滿足 \(a_i\not= i\) 排列的個數占全排列個數的比例
我們知道 \(n\) 的全排列個數為 \(n!\),那麼要計算的就是滿足 \(a_i\not= i\) 排列的個數,暫且用 \(\\) 表示
設 \(n\) 個數中 \(\\)個數為 \(f_n\)
顯然 \(\\) 個數為 \(1\),然後隨便調換其中數的位置,可以發現, \(n\) 個數中有 \(k\) 個數滿足 \(a_i\not= i\) 的排列有 \(c_n^k\times f_k\) 個
那麼我們可以寫出轉移方程:
\[f_n=n!-\sum_^c_n^k\times f_k-1
\]顯然 \(f_2=1\),然後預處理一下階乘和組合數,就可以遞推答案了。
#include #include #include #include using namespace std;
typedef long long ll;
ll c[25][25],f[25];
ll fac[25];
int t,n;
int main()
scanf("%d",&t);
while(t--)
return 0;
}
HDU 2048 神 上帝以及老天爺
problem description hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字...
HDU2048 神 上帝以及老天爺
include include int main return 0 錯排問題。當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用d n 表示,那麼d n 1 就表示n 1個編號元素放在n 1個編號位置,各不對應的方法數,其它類推.第一步,把第n個元素放在乙個位置,比如位置k,一共有...
HDU 2048 神 上帝以及老天爺
problem description hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字...