bzoj 4710(组合数学+容斥原理)
来源:互联网 发布:淘宝日本服装代购 编辑:程序博客网 时间:2024/06/05 04:08
传送门
题解:
先介绍一条公式:将n个物品分给m个人有C(n+m-1,m-1)种方案。但是这些方案是包括了不合法的(有些人没有获得任何物品)。对于这道题,需要保证所有人都分到物品,所以容斥原理解决:
ans=0个人没分到-1个人没分到+2个人没分到……n个人没分到
对于某一种情况——i个人没分到:
当前方案数=n个人选i个人方案数*每种物品都分给(n-i)个人的方案数(就是代码中now的含义)。
#include<bits/stdc++.h>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() { scanf("%d%d",&n,&m); for (int i=1;i<=m;++i) scanf("%d",&a[i]); for (int i=0;i<=2000;++i) c[i][0]=1; for (int i=1;i<=2000;++i) for (int j=1;j<=2000;++j) c[i][j]=(c[i-1][j-1]+c[i-1][j])%MOD; ll ans=0; for (int i=0,f=1;i<=n;++i,f=-f) { ll now=1; for (int j=1;j<=m;++j) now=now*c[a[j]+n-i-1][n-i-1]%MOD; ans=(ans+now*c[n][i]%MOD*f)%MOD; } printf("%lld\n",(ans%MOD+MOD)%MOD);}
阅读全文
0 0
- bzoj 4710(组合数学+容斥原理)
- BZOJ 2839: 集合计数 容斥原理 组合数学
- 容斥原理(组合数学)总结
- bzoj 3129: [Sdoi2013]方程(容斥原理+组合数学+数论)
- bzoj 4487: [Jsoi2015]染色问题 (容斥原理+组合数学)
- 【BZOJ】1042 [HAOI2008]硬币购物 组合数学(容斥)
- [BZOJ4710]4710: [Jsoi2011]分特产 容斥原理+组合数学
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- uva 10325 The Lottery(组合数学-容斥原理)
- HDU 5073 Coprime(容斥原理+组合数学)
- [BZOJ2839]集合计数(容斥原理+组合数学)
- [BZOJ3198][Sdoi2013]spring(hash+容斥原理+组合数学)
- [BZOJ4710][Jsoi2011]分特产(容斥原理+组合数学)
- [BZOJ2916][Poi1997]Monochromatic Triangles(容斥原理+组合数学)
- [BZOJ4710][JSOI2011]分特产(组合数学+容斥原理)
- [BZOJ4487][JSOI2015]染色问题(组合数学+容斥原理)
- 组合数学-容斥原理专辑
- 组合数学 容斥原理 专题
- 社会网络分析入门书目导读
- 使用花生壳实现Tomcat服务器对外映射
- 蛇形填数(二)
- java加解密之DES多种使用方式
- 总结mysql的三种外键约束方式
- bzoj 4710(组合数学+容斥原理)
- 并发编程复习(四):wait和notify解析
- Eslint插件
- python lambda表达式
- 【安全牛学习笔记】密钥交换、AIRCRACK-NG基础、AIRODUMP-NG排错
- 第三周 【项目1
- Android最全开发资源及参考资料
- PDF页面参差不齐统一页面大小--Adobe印刷制作功能
- MySQL的limit的使用