bzoj 4710: [Jsoi2011]分特产
2017-12-20 13:44
239 查看
题意:
将m种不同特产分给n个人,每种物品a[i]个,每个人多要有至少一个特产。问方案数。题解:
傻逼题。假如可以有人没有,那么就是ΠniCn−1n+a[i]−1
然后容斥减不合法的就没有了。
code:
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #define LL long long using namespace std; const LL mod=1000000007; LL C[2010][2010],n,m,a[1010]; void pre() { for(LL i=0;i<=2000;i++) { C[i][0]=1; for(LL j=1;j<=i;j++) C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod; } } LL solve(LL x) { LL ans=1; for(LL i=1;i<=m;i++) ans=ans*C[x+a[i]-1][x-1]%mod; return ans; } int main() { pre(); scanf("%lld %lld",&n,&m); for(LL i=1;i<=m;i++) scanf("%lld",&a[i]); LL ans=0; for(LL i=1;i<=n;i++) { LL tmp=solve(i); if((i&1)==(n&1)) ans=(ans+tmp*C [i]%mod)%mod; else ans=(ans-tmp*C [i]%mod)%mod; (ans+=mod)%=mod; } printf("%lld",ans); }
相关文章推荐
- bzoj 4710: [Jsoi2011]分特产 (容斥原理+DP)
- Bzoj4710--Jsoi2011分特产
- ●BZOJ 4710 [Jsoi2011]分特产
- bzoj4710 [Jsoi2011]分特产 容斥原理
- [BZOJ4710]4710: [Jsoi2011]分特产 容斥原理+组合数学
- BZOJ 4710: [Jsoi2011]分特产 [容斥原理]
- [Jsoi 2011] bzoj4710 分特产 [容斥原理+组合数学]
- bzoj 4710 : [Jsoi2011]分特产
- 【BZOJ 4710】【JSOI 2011】分特产【计数&容斥】
- bzoj千题计划273:bzoj4710: [Jsoi2011]分特产
- bzoj 4710: [Jsoi2011]分特产 排列组合+容斥原理
- [BZOJ4710][JSOI2011]分特产(组合数学+容斥原理)
- bzoj 4710: [Jsoi2011]分特产
- Bzoj4710 [Jsoi2011]分特产
- [bzoj4710][JSOI2011]分特产
- 【BZOJ4710】[Jsoi2011]分特产 组合数+容斥
- 【bzoj4710】[Jsoi2011]分特产 容斥原理+组合数学
- [BZOJ4710][Jsoi2011]分特产(容斥原理+组合数学)
- bzoj 4710 [Jsoi2011]分特产
- 【BZOJ 4710】 4710: [Jsoi2011]分特产 (容斥原理)