【bzoj4710】[Jsoi2011]分特产】的更多相关文章

4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 289  Solved: 198[Submit][Status][Discuss] Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产.…
4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 814  Solved: 527[Submit][Status][Discuss] Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产.…
4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 395  Solved: 262[Submit][Status][Discuss] Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产.…
http://www.lydsy.com/JudgeOnline/problem.php?id=4710 答案=总方案数-不合法方案数 f[i][j] 前i种特产分给j个人(可能有人没有分到特产)的总方案数 考虑第i种特产的分配f[i][j]=f[i-1][j]*C(a[i]+j-1 , j-1) g[i] 表示有i个人,每个人至少分到一种特产,其他人都没有分到的方案数 g[i]=f[m][i]-Σg[j]*C(i,j)   j∈[1,i-1] 即有i个人分到特产=总方案数-只有1个人分到特产-…
Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产. 例如,JYY 带来了2 袋麻花和1 袋包子,分给A 和B 两位同学,那么共有4 种不同的 分配方法: A:麻花,B:麻花.包子 A:麻花.麻花,B:包子 A:包子,B:麻花.麻花 A:麻花.包子,B:麻花 Input 输…
Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 96  Solved: 62[Submit][Status][Discuss] Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产. 例如,JYY 带来了2 袋麻花和1 袋包子,…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4710 题解 本来想去找一个二项式反演的题的,结果被 https://www.cnblogs.com/GXZlegend/p/11407185.html 骗了,给的最后一道题是一个基础容斥的题. (不过反演的本质就是容斥呢,如果二项式反演的 \(g(n)\) 的 \(n\) 是 \(0\) 的话也就跟最常见的容斥差不多了) 考虑如果钦定有 \(k\) 个同学没有拿到特产,那么特产中剩下的同学就…
题意:把M堆特产分给N个同学,要求每个同学至少分到一种特产,共有多少种分法? 把A个球分给B个人的分法种数:(插板法,假设A个球互不相同,依次插入,然后除以全排列去重) C(A,B+A) 把M堆特产分给N个同学分法总数(考虑每堆特产拿出来单独分) ∏c(mi,n) 然后因为题目要求每个同学至少分到一种特产,所以用到容斥原理 每个同学至少分到一种特产分法总数  =   没有要求时的分法总数 - 至少有一个同学没有分到特产的分法总数  + 至少有两个同学没有分到特产的分法总数  …… 先预处理出可能…
显然可以容斥去掉每人都不为空的限制.每种物品分配方式独立,各自算一个可重组合乘起来即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define P 1000000007 #de…
传送门 题意简述:有nnn个人,mmm种物品,给出每种物品的数量aia_iai​,问每个人至少分得一个物品的方案数(n,m,每种物品数≤1000n,m,每种物品数\le1000n,m,每种物品数≤1000). 思路: 我们算出fif_ifi​表示至少有iii个人没有分到物品的方案数容斥一下即可. 于是fi=Cni∏j=1mCn−i−1+ajn−i−1f_i=C_n^i\prod_{j=1}^mC_{n-i-1+a_j}^{n-i-1}fi​=Cni​∏j=1m​Cn−i−1+aj​n−i−1​…