bzoj 4517 Sdoi2016 排列計數

2021-07-13 12:42:26 字數 943 閱讀 8809

求有多少種長度為 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(n,m)*d(n-m)

d(n)為n的錯排,即每位都不相同的排序總數

d(n)=(n-1)*(d(n-2)+d(n-1))

【n-1均錯位,n與n-1中的任意乙個交換。或者n-1個中n-2個錯位,n與那個沒錯位的交換】

預處理即可

#includeusing namespace std;

long long p[1000001],px[1000001],d[1000001];

long long mod=1000000007;

inline long long power(long long x,int y)

return pt;

}int main()

d[2]=1;

d[0]=1;

for(i=3;i<=1000000;i++)

d[i]=(long long)(i-1)*(d[i-1]+d[i-2])%mod;

int t;

scanf("%d",&t);

while(t>0)

return 0;

}

bzoj4517 sdoi2016 排列計數 錯排

題目大意 給定n,m。求排列個數,排列滿足 1 是全排列的一種。2,有且僅有m個數a i i。嗯,今天 第一次 聽說了個錯排這個東西。誒。不過開心,smz妹子給我講噠 錯排就是求n的排列個數,排列滿足不存在a i i。可以遞推來完成。f i i 1 f i 1 f i 2 證明 第i個元素可以選擇和...

BZOJ 4517 Sdoi2016 排列計數

de scri ptio n 求有多少種長度為 n 的序列 a,滿足以下條件 1 n這 n 個數在序列中各出現了一次 若第 i 個數 a i 的值為 i 則稱 i是穩定的。序列恰好有 m 個數是穩定的 滿足條件的序列可能很多,序列數對 109 7取模。inp ut 第一行乙個數 t 表示有 t組資料...

bzoj 4517 Sdoi2016 排列計數

4517 sdoi2016 排列計數 time limit 60 sec memory limit 128 mb submit 1208 solved 734 submit status discuss description 求有多少種長度為 n 的序列 a,滿足以下條件 1 n 這 n 個數在序...