bzoj4710 [Jsoi2011]分特产 容斥原理
来源:互联网 发布:爱喝啤酒软件 编辑:程序博客网 时间:2024/06/10 13:44
首先知道隔板法可以算出有空的方案。
那么就可以把题目转化为总方案书-不合法的方案数,容斥以后即:
至少0个人为空-至少一个人为空+至少。。。。。
那么强制不选i个盒子,算出方案数以后就是只有n-i个人有的方案。
但是并不能确定是哪i个人没被分配,所以最后乘上一个C(n,i)
#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=2e3+5;const int mo=1e9+7;typedef long long ll;int c[N][N];int a[N],n,m;ll ans;int main(){ scanf("%d%d",&n,&m); fo(i,1,m)scanf("%d",&a[i]); fo(i,0,2000)c[i][0]=1; fo(i,1,N-5) fo(j,1,N-5)c[i][j]=(c[i-1][j]+c[i-1][j-1])%mo; int f=1; fo(i,0,n) { ll tmp=1; fo(j,1,m) tmp=tmp*c[a[j]+n-i-1][n-i-1]%mo; ans=(ans+tmp*c[n][i]%mo*f)%mo; f=-f; } if (ans<0)ans=(ans+mo)%mo; printf("%lld\n",ans%mo);}
阅读全文
0 0
- [BZOJ4710][Jsoi2011]分特产 容斥原理
- [BZOJ4710][Jsoi2011]分特产 容斥原理
- bzoj4710 [Jsoi2011]分特产 容斥原理
- [BZOJ4710][Jsoi2011]分特产(容斥原理+组合数学)
- [BZOJ4710]4710: [Jsoi2011]分特产 容斥原理+组合数学
- [BZOJ4710][JSOI2011]分特产(组合数学+容斥原理)
- [容斥][排列组合] BZOJ4710 && Jsoi2011.分特产
- [bzoj4710][JSOI2011]分特产
- BZOJ4710 [Jsoi2011]分特产
- 【JSOI2011】bzoj4710 分特产
- bzoj4710: [Jsoi2011]分特产
- bzoj 4710: [Jsoi2011]分特产 (容斥原理+DP)
- bzoj 4710: [Jsoi2011]分特产 排列组合+容斥原理
- BZOJ 4710 分特产 容斥原理
- 4710: [Jsoi2011]分特产
- bzoj 4710 [Jsoi2011]分特产
- bzoj 4710: [Jsoi2011]分特产
- 【BZOJ 4710】【JSOI 2011】分特产【计数&容斥】
- 从值栈获取数据
- python实现网络编程 之Twisted框架
- UVA
- 【java】java实现回文判断,递归实现
- FFmpeg第一步--编译
- bzoj4710 [Jsoi2011]分特产 容斥原理
- Tableau 可视化初体验
- Java基础-方法区以及static的内存分配图
- css之position定位个人理解
- 【谈英语的感受】
- 练习20
- SparkR安装部署及数据分析实例
- 内部类使用外部类局部变量必须是 final 原因
- 从值栈获取对象