求有多少種長度為 n 的序列 a,滿足以下條件:
1 ~ n 這 n 個數在序列中各出現了一次
若第 i 個數 a[i] 的值為 i,則稱 i 是穩定的。序列恰好有 m 個數是穩定的
滿足條件的序列可能很多,序列數對 10^9+7 取模。
第一行乙個數 t,表示有 t 組資料。
接下來 t 行,每行兩個整數 n、m。
t=500000,n≤1000000,m≤1000000
輸出 t 行,每行乙個數,表示求出的序列數
51 0
1 15 2
100 50
10000 500001
20578028887
60695423
組合+錯排
$ans=c_^*d_n-m$
$d[n]=n!(1-\frac+\frac-.......(-1)^\frac)$
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7 typedef long
long
lol;
8 lol fac[1000001],inv[1000001],d[1000001
];9 lol n,m,mod=1e9+7;10
intmain()
1131 }
SDOI 2016 排列計數
題目鏈結 演算法 有m個數在原來的位置上,說明有 n m 個數不再原來的位置上 那麼,我們可以選出 n m 個數,使這 n m 個數都不在原來的位置上,再讓剩下的m個數都在原來的位置上 錯位排列遞推公式 f 1 0 f 2 1 f n n 1 f n 1 f n 2 n 2 因此,答案為c n,n ...
SDOI2016 排列計數
嘟嘟嘟 從今天開始搞一搞組合計數!先學乙個錯排公式。所謂的錯排就是乙個排列,滿足對於任意的 i 有 a i neq i 這東西是可以遞推求的。令 d i 表示長度為 n 的排列的錯排數。我們假設 d n 1 已經求出來,現在考慮第 n 個。首先第乙個肯定要和其中任意第 i 個 1 leqslant ...
SDOI2016 排列計數
這不是錯排嗎?誒,我怎麼一眼就看出來了?誒,我怎麼打不來錯排?誒,我怎麼躺地上了?洛谷 m 個數字是對應的位置那麼就有 c n m 種情況,剩下的數字只需要求出錯排數,即求出 d n m 就搞定了 那麼怎麼求錯排呢?前往部落格食用 錯排組合數就不用多說了吧,配合逆元求解 答案就是 c n m d n...