显然可以容斥去掉每人都不为空的限制。每种物品分配方式独立,各自算一个可重组合乘起来即可。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<cstdlib>
  5. #include<cstring>
  6. #include<algorithm>
  7. using namespace std;
  8. #define ll long long
  9. #define P 1000000007
  10. #define N 1010
  11. char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
  12. int gcd(int n,int m){return m==?n:gcd(m,n%m);}
  13. int read()
  14. {
  15. int x=,f=;char c=getchar();
  16. while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
  17. while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
  18. return x*f;
  19. }
  20. int n,m,a[N],C[N<<][N<<],f[N],ans;
  21. void inc(int &x,int y){x+=y;if (x>=P) x-=P;}
  22. int main()
  23. {
  24. #ifndef ONLINE_JUDGE
  25. freopen("bzoj4710.in","r",stdin);
  26. freopen("bzoj4710.out","w",stdout);
  27. const char LL[]="%I64d\n";
  28. #else
  29. const char LL[]="%lld\n";
  30. #endif
  31. m=read(),n=read();
  32. for (int i=;i<=n;i++) a[i]=read();
  33. C[][]=;
  34. for (int i=;i<=;i++)
  35. {
  36. C[i][]=C[i][i]=;
  37. for (int j=;j<i;j++) C[i][j]=(C[i-][j-]+C[i-][j])%P;
  38. }
  39. for (int i=;i<=m;i++)
  40. {
  41. f[i]=;
  42. for (int j=;j<=n;j++)
  43. f[i]=1ll*f[i]*C[a[j]+i-][i-]%P;
  44. }
  45. for (int i=m;i>=;i--)
  46. if (m-i&) inc(ans,P-1ll*C[m][i]*f[i]%P);
  47. else inc(ans,1ll*C[m][i]*f[i]%P);
  48. cout<<ans;
  49. return ;
  50. }

BZOJ4710 JSOI2011分特产(容斥原理+组合数学)的更多相关文章

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

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

  2. BZOJ4710: [Jsoi2011]分特产【组合数学+容斥】

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

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

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

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

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

  5. BZOJ 4710: [Jsoi2011]分特产 [容斥原理]

    4710: [Jsoi2011]分特产 题意:m种物品分给n个同学,每个同学至少有一个物品,求方案数 对于每种物品是独立的,就是分成n组可以为空,然后可以用乘法原理合起来 容斥容斥 \[ 每个同学至少 ...

  6. bzoj4710: [Jsoi2011]分特产 组合+容斥

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

  7. BZOJ4710: [Jsoi2011]分特产 组合数学 容斥原理

    题意:把M堆特产分给N个同学,要求每个同学至少分到一种特产,共有多少种分法? 把A个球分给B个人的分法种数:(插板法,假设A个球互不相同,依次插入,然后除以全排列去重) C(A,B+A) 把M堆特产分 ...

  8. 2019.02.09 bzoj4710: [Jsoi2011]分特产(容斥原理)

    传送门 题意简述:有nnn个人,mmm种物品,给出每种物品的数量aia_iai​,问每个人至少分得一个物品的方案数(n,m,每种物品数≤1000n,m,每种物品数\le1000n,m,每种物品数≤10 ...

  9. bzoj千题计划273:bzoj4710: [Jsoi2011]分特产

    http://www.lydsy.com/JudgeOnline/problem.php?id=4710 答案=总方案数-不合法方案数 f[i][j] 前i种特产分给j个人(可能有人没有分到特产)的总 ...

随机推荐

  1. 深圳Uber司机本周(7.13-7.19凌晨4:00)的奖励政策

    本周(7.13-7.19凌晨4:00)的奖励政策为: 佣金返还: 车费的20%适用于所有产品(不包括Tesla)无获取条件 翻倍补贴: 每周一到周四07:00-10:00/17:00-22:00:车费 ...

  2. Android UI控件:TextView

    TextVIew的属性详解 android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/ma ...

  3. DSP5509的XF实验-第一篇

    1. 使用大道科技的EASY-DSP5509开发板,测试第一个例程,DSP_easy5509\Code-Easy5509\EX01_XF\XF 2. 直接编译,报出错误,在Problems窗口错误指示 ...

  4. MAC 更新brew 镜像源

    mac 更新brew镜像源 cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url o ...

  5. Ubuntu Server 下将HTML页面转换为PNG图片

    零.前言 最近做一个网站,需要将网页转换为图片.由于服务器是Ubuntu Server,没有图形界面,所以实现的过程中遇到了很多问题.记录下来备用. 一.安装CutyCapt CutyCapt是一个可 ...

  6. Linux命令应用大词典-第10章 Shell相关命令

    10.1 commond:抑制正常的Shell函数查找 10.2 exec:使用执行命令替换当前的shell进程 10.3 bash:GNU的Bourne-Again Shell解释器 10.4 bu ...

  7. C++11 TypeList 妙用

    源码展示: #include <iostream> using namespace std; template <typename ... Args> struct typel ...

  8. Angualr6访问API

    参照 草根专栏- ASP.NET Core + Ng6 实战: https://v.qq.com/x/page/a0769armuui.html 1.environment.ts 添加apiUrlBa ...

  9. Android开发-API指南-<permission>

    <permission> 英文原文:http://developer.android.com/guide/topics/manifest/permission-element.html 采 ...

  10. 开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim

    AirSim 的官方 Github: https://github.com/Microsoft/AirSim 对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把 ...