bzoj2839 關於組合數的若干yy

2022-08-04 18:18:13 字數 1076 閱讀 1303

考慮容斥,最後的答案為∑n

i=k(

−1)i

−k∗c

in∗c

ki∗(

22n−

i−1)

實際上-1和最後一部分並不需要解釋,然後我們看看如何證明這個的正確性。

關於普通的容斥原理,我們可以用二項式定理yy

當我們發現對於每乙個交集大小為n的選法,他最後被統計的次數是這個. ∑n

i=k(

−1)i

−kci

n∗ck

i由於我菜,就上uoj群問了一發,釗神說這似乎是證明二項式反演的啥啥玩意兒orz.

我們根據組合數的公式,有 ci

n∗ck

i=ck

n∗ci

−kn−

k那麼 ∑n

i=k(

−1)i

−kci

n∗ck

i=0(

k=∑n

i=k(

−1)i

−kck

nci−

kn−k

=0(k

=ckn∑ni

=k(−

1)i−

k∗ci

−kn−

k=0(

k=ck

n(1−

1)n−

k 考慮這個式子,當n>k的時候,他=0,當n=k時,他=1.這就說明我們最後只算了交集為k的情況.

#include

#include

const

int p = 1e9 + 7, n = 1e6 + 8;

int n, k;

typedef

long

long ll;

ll la = 2, res, jc[n], jc_rev[n];

ll c (int n, int m)

ll quick_power (ll a, int b)

int main ()

printf ("%lld\n", (res + p) % p);

return

0;}

bzoj2839 關於組合數的若干yy

考慮容斥,最後的答案為 n i k 1 i k c in c ki 22n i 1 實際上 1和最後一部分並不需要解釋,然後我們看看如何證明這個的正確性。關於普通的容斥原理,我們可以用二項式定理yy 當我們發現對於每乙個交集大小為n的選法,他最後被統計的次數是這個.n i k 1 i kci n c...

BZOJ2839 集合計數 容斥原理 組合數

乙個有n個元素的集合有2n個不同子集 包含空集 現在要在這2n個集合中取出若干集合 至少乙個 使得 它們的交集的元素個數為k,求取法的方案數,答案模1000000007。是質數喔 一行兩個整數n,k 一行為答案。3 2 樣例說明 假設原集合為 則滿足條件的方案為 資料說明 對於100 的資料,1 n...

Bzoj2839 集合計數 組合數學 容斥

答案是含有至少k個的 至少k 1個的 至少k 2個的 從n個數中選出k個作為交集中的數,是c n,k 這樣的集合共有2 2 n k 1個 2 n k 是包含選定的k個數的可選集合的數量,選取方案有2 2 n k 1個 不能有空集否則無法保證k個元素 所以ans c n,k c k,k 2 2 n k...