組合計數問題中容斥原理的應用

2021-06-23 04:30:45 字數 740 閱讀 2141

容斥原理作為數學中的乙個重要定理,在acm當中也有重要的應用,可以用於解決組合計數問題,概率論問題,數論問題。

具體參見2013 成都七中 王迪 《**容斥原理》

容斥原理當中奇數個集合為正,偶數個集合為負。

其核心思想是:把重複的扣掉,再把扣多的加回來。

初始化時會用到的公式:

c(m,0)=c(m,m)=1      c(n,k)+c(n,k+1)=c(n+1,k+1)

1.容斥原理在組合計數當中的應用

劉汝佳《訓練指南》107頁的例題3   很經典的一道題目

具體解法,參照訓練指南,此處不在多論述,是一道非常經典的用二進位制記錄容斥原理的題目

#include#include#includeusing namespace std;

const int maxn=500+10;

const int mod=1000007;

int c[maxn][maxn];

int main()

void dfs(__int64 i,__int64 a,__int64 b)

}return;

}int main()

if(n>1)

prime[m++]=n;

printf("case #%d: %i64d\n",cas,b-solve(b,m)-(a-1-solve(a-1,m)));

}return 0;

}

集合計數 (容斥原理)

心路 題解,其實就是,這四個集合在隨機組成的方案中,空集相當於哪個集合都沒取交集為空所以不符合。求出1,3後乘上c n,2 不就是交出來至少含k個的方案數了嗎?顯然不是,有重複的啊 比如1,3會求到交,而1,4.3,4也會 當時我就這崩了.看重複的有多少啊 對於求k個時交出來是k 1個的會算c k ...

組合數學 容斥 集合計數

首先我們知考慮只有一種交集 交集的大小為k,那麼有2n k個子集包含了這k個元素 確定k個元素,再從剩下n k個元素任意選取,有2n k種組合 用這2n k個子集能有2 2 n k 種組合,再減去1個空集 一共有ck n種交集,這樣得出tmp k ck n 2 2 n k 1 種方法 這裡面包含了交...

分類計數原理與分步計數原理 計數問題之容斥原理

今天來聊聊計數問題中的容斥原理。我們知道加乘原理,加乘 中的 加 其實是分類思想的體現,這種分類是基於乙個前提,就是你的是你的,我的是我的,每個分類都分的清清楚楚,彼此無交叉。而今天要聊的容斥原理與此不同,容斥是你中有我,我中又有你。容指包含 斥指排除,大概是這個意思吧!容斥的問題可以利用文氏圖 又...