傳送門
題解:
先介紹一條公式:將n個物品分給m個人有c(n+m-1,m-1)種方案。但是這些方案是包括了不合法的(有些人沒有獲得任何物品)。對於這道題,需要保證所有人都分到物品,所以容斥原理解決:
ans=0個人沒分到-1個人沒分到+2個人沒分到……n個人沒分到
對於某一種情況——i個人沒分到:
當前方案數=n個人選i個人方案數*每種物品都分給(n-i)個人的方案數(就是**中now的含義)。
#include
using namespace std;
typedef long long ll;
const int maxn=1002;
const int mod=1e9+7;
int n,m,c[maxn<<1][maxn<<1],a[maxn];
int main()
printf("%lld\n",(ans%mod+mod)%mod);
}
組合數學 容斥 集合計數
首先我們知考慮只有一種交集 交集的大小為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 種方法 這裡面包含了交...
錯排問題 組合數學 容斥原理
3.錯排問題 problem 題目描述 n本不同的書放在書架上。其中m本書已經重新擺放好,將剩下的n m 本書也重新擺放,使每本書都不在原來放的位置。求有幾種擺法。輸入資料 第1行兩個數n,m 接下來m行,每行兩個數xi,yi表示原來的第xi本書已經放到了第yi 個位置上資料保證任意兩個x不相同,任...
組合數學 容斥原理和錯位排列
真的,學了組合數學你會克服公式恐懼症0.0深有體會 設a 1,a2 a n 為有限集合,用 a i 表示集合ai 中的元素個數那麼有這樣的結論 a 1 a2 a n i 1n ai 1 in ai aj 1 i jn ai aj ak 1 n 1 a1 a2 an 總的概括就是奇數個集合的並集累加和...