FZU2282(組合數 錯排)

2021-09-21 18:53:34 字數 921 閱讀 6321

題目大意:一共n個數(1~n),問a[i] == i的個數大於等於k的方案數。

解題思路:其實就是大於等於k個人篩掉後剩下的人進行錯排的問題。選k~n個人對應得要乘上組合數,由於n比較大,k相對較小,可以打表陣列肯定mle,於是可以反過來想:總得排列數是ann,扣除小於k的方案就能夠得到答案,由於所有打表都進行取模,最後還要防止變成負數!求組合數取模的問題也可以用盧卡斯定理方法求得。

code

#include

#include

const

int maxn =

(int

)1e4+5

;const

int mod =

(int

)1e9+7

;typedef

long

long ll;

ll dp[maxn]

,n,k,sum, a[maxn]

;ll c[maxn]

[105];

intmain()

a[1]=

1;for(

int i =

2; i < maxn; i++

)for

(int i =

0; i < maxn; i++)}

scanf

("%d"

,&t)

;while

(t--

) sum =

(a[n]

- sum + mod)

% mod;

//由於mod的原因可能會變成負數

printf

("%d\n"

, sum);}

return0;

}

Fzu 2282 錯排 組合

題意 給n個數字,求至少k個數字位置不變的排列數量。思路 求至少k個人位置不變只要用全排列的數量減掉0 k錯排的數量即可 錯排公式 dn n 1 dn 2 dn 1 錯排的數量為c n,i dn include include include include include using namesp...

RPG的錯排(組合數 錯排)

problem description 今年暑假杭電acm集訓隊第一次組成女生隊,其中有一隊叫rpg,但做為集訓隊成員之一的野駱駝竟然不知道rpg三個人具體是誰誰。rpg給他機會讓他猜猜,第一次猜 r是公主,p是草兒,g是月野兔 第二次猜 r是草兒,p是月野兔,g是公主 第三次猜 r是草兒,p是公主...

luogu p2282 組合數問題

傳送門 組合數 binom 表示的是從 n 個物品中選出 m 個物品的方案數。舉個例子,從 1,2,3 三個物品中選擇兩個物品可以有 1,2 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 binom 的一般公式 binom frac 其中 n 1 times2 times...