4710: [Jsoi2011]分特产

题意:m种物品分给n个同学,每个同学至少有一个物品,求方案数


对于每种物品是独立的,就是分成n组可以为空,然后可以用乘法原理合起来

容斥容斥

\[每个同学至少一个=所有方案数-\ge 1个同学没有+\ge 2 个同学没有-...
\]

\(\ge i\)个同学没有,我们拿出来i个同学\(\binom{n}{i}\)个方案,剩下就是每种物品分成\(n-i\)组再乘起来罢了...



```cpp
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int N=5005, P=1e9+7;
inline int read(){
char c=getchar();int x=0,f=1;
while(c'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&cint n, m, c[N];

ll inv[N], fac[N], facInv[N];

inline ll C(int n, int m) {return fac[n]facInv[m]%P facInv[n-m]%P;}

inline ll f(int c, int n) {return C(n+c-1, n-1);}

void solve() {

ll ans=0;

for(int i=0; i<=n; i++) {

ll t=1;

for(int j=1; j<=m; j++) t=(t * f(c[j], n-i))%P;

t = t
C(n, i)%P;

(ans += (i&1) ? -t : t) %=P;

}

printf("%lld\n",(ans+P)%P);

}

int main() {

//freopen("in","r",stdin);

n=read(); m=read(); int lim=0;

for(int i=1; i<=m; i++) c[i]=read(), lim=max(lim, c[i]);

inv[1]=1; fac[0]=facInv[0]=1;

for(int i=1; i<=n+lim; i++) {

if(i!=1) inv[i] = (P-P/i)
inv[P%i]%P;

fac[i] = fac[i-1]i%P;

facInv[i] = facInv[i-1]
inv[i]%P;

}

solve();

}

BZOJ 4710: [Jsoi2011]分特产 [容斥原理]的更多相关文章

  1. BZOJ 4710 [Jsoi2011]分特产 解题报告

    4710 [Jsoi2011]分特产 题意 给定\(n\)个集合,每个集合有相同的\(a_i\)个元素,不同的集合的元素不同.将所有的元素分给\(m\)个不同位置,要求每个位置至少有一个元素,求分配方 ...

  2. ●BZOJ 4710 [Jsoi2011]分特产

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4710 题解: 容斥,组合先看看这个方案数的计算:把 M 个相同的东西分给 N 个人,每个人可 ...

  3. bzoj 4710: [Jsoi2011]分特产

    Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望 ...

  4. BZOJ 4710: [Jsoi2011]分特产(容斥)

    传送门 解题思路 首先所有物品是一定要用完的,那么可以按照物品考虑,就是把每种物品分给\(n\)个人,每个人分得非负整数,可以用隔板法计算.设物品有\(m\)个,方案数为\(C(n+m-1,n-1)\ ...

  5. 【BZOJ 4710】 4710: [Jsoi2011]分特产 (容斥原理)

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 99  Solved: 65 Description JYY 带 ...

  6. 4710: [Jsoi2011]分特产

    4710: [Jsoi2011]分特产 链接 分析: 容斥原理+隔板法. 代码: #include<cstdio> #include<algorithm> #include&l ...

  7. 【bzoj4710】[Jsoi2011]分特产 容斥原理+组合数学

    题目描述 JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任何一个同学因 ...

  8. [BZOJ4710][JSOI2011]分特产(组合数+容斥原理)

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 395  Solved: 262[Submit][Status] ...

  9. bzoj4710 [Jsoi2011]分特产(容斥)

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 814  Solved: 527[Submit][Status] ...

随机推荐

  1. hadoop2.6.0集群搭建

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  2. TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系 (转载)

    首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层.但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生. 1,MTU( ...

  3. 一 : springmvc常用注解

    springmvc常用注解详解1.@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层 ...

  4. UEP-多任务

    打开多任务 Function testTabTask(){ openTabTask(","多任务测试",$$pageContextPath+"/componen ...

  5. PHP安全之webshell和后门检测

    基于PHP的应用面临着各种各样的攻击: XSS:对PHP的Web应用而言,跨站脚本是一个易受攻击的点.攻击者可以利用它盗取用户信息.你可以配置Apache,或是写更安全的PHP代码(验证所有用户输入) ...

  6. kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition...Error: NETWORK_EXCEPTION

      kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition... ...

  7. 解Linux SSH命令大全,新手必看SSH命令

    下面介绍一些基本的常用的Linux SSH命令,都是一些很简单的Linux SSH命令,新手掌握了这几个,一般管理一般的vps或者linux主机就可以了!     我们的教程介绍了putty的使用方法 ...

  8. HTML 5 video 视频标签全属性详解

    http://www.cnblogs.com/kiter/archive/2013/02/25/2932157.html 现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theor ...

  9. Ubuntu问题:E45: 'readonly' option is set (add ! to override)错误解决

    问题描述:E45: 'readonly' option is set (add ! to override) 问题分析:该错误为当前用户没有权限对文件作修改 问题解决: 输入 :w !sudo tee ...

  10. requests关于Exceeded 30 redirects问题得出的结论

    昨天一个朋友在爬网页时出现的一个问题,以及后续我对这个问题进行了简单的测试. 先说出现的问题的简单描述. 首先是使用urllib请求网页: #urllib.request发起的请求 import ur ...