多重集求组合数,注意到\(n = 20\)所以可以用\(2 ^ n * n\)的容斥来写。

如果没有限制那么答案就是\(C(n + s - 1, n - 1)\)。对每一个限制依次考虑,加上有一种选多的,减去有两种选多的,以此类推。

由于\(n <= 20\),所以组合数事实上是可以\(O(N)\)求的=_=

#include <bits/stdc++.h>
using namespace std; #define int long long
const int Mod = 1000000007;
const int N = (1 << 20) + 5; int add (int x, int y) {return (((0ll + (x % Mod) + (y % Mod)) % Mod) + Mod) % Mod;}
int mul (int x, int y) {return (((1ll * (x % Mod) * (y % Mod)) % Mod) + Mod) % Mod;} int n, s, f[21], fac[21], inv[21]; int C (int n, int m) {
int res = 1;
for (int i = n - m + 1; i <= n; ++i) res = mul (res, i);
res = mul (res, inv[m]);
return res;
} int fpow (int x, int y) {
int res = 1;
while (y) {
if (y & 1) {
res = mul (res, x);
}
x = mul (x, x);
y >>= 1;
}
return res;
} signed main () {
cin >> n >> s;
for (int i = 1; i <= n; ++i) {
cin >> f[i];
}
fac[0] = 1;
for (int i = 1; i <= n; ++i) {
fac[i] = mul (fac[i - 1], i);
}
inv[n] = fpow (fac[n], Mod - 2);
for (int i = n; i >= 1; --i) {
inv[i - 1] = mul (inv[i], i);
}
int ans = C (n + s - 1, n - 1);
for (int i = 1; i < (1 << n); ++i) {
int w = 0, del = 0, have_wei = 0;
for (int j = 0; j < n; ++j) {
if (i & (1 << j)) {
have_wei++;
del += f[j + 1] + 1;
}
}
w = have_wei & 1 ? -1 : + 1;
if (s >= del) {
ans = add (ans, w * C (n + s - 1 - del, n - 1));
}
}
cout << ans << endl;
}

CF451E Devu and Flowers的更多相关文章

  1. CF451E Devu and Flowers 解题报告

    CF451E Devu and Flowers 题意: \(Devu\)有\(N\)个盒子,第\(i\)个盒子中有\(c_i\)枝花.同一个盒子内的花颜色相同,不同盒子的花颜色不同.\(Devu\)要 ...

  2. CF451E Devu and Flowers(容斥)

    CF451E Devu and Flowers(容斥) 题目大意 \(n\)种花每种\(f_i\)个,求选出\(s\)朵花的方案.不一定每种花都要选到. \(n\le 20\) 解法 利用可重组合的公 ...

  3. CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)

    Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...

  4. BZOJ1101 [POI2007]Zap 和 CF451E Devu and Flowers

    Zap FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到 ...

  5. CF451E Devu and Flowers(组合数)

    题目描述 Devu想用花去装饰他的花园,他已经购买了n个箱子,第i个箱子有fi朵花,在同一个的箱子里的所有花是同种颜色的(所以它们没有任何其他特征).另外,不存在两个箱子中的花是相同颜色的. 现在De ...

  6. Luogu CF451E Devu and Flowers 题解报告

    题目传送门 [题目大意] 有n种颜色的花,第i种颜色的花有a[i]朵,从这些花中选m朵出来,问有多少种方案?答案对109+7取模 [思路分析] 这是一个多重集的组合数问题,答案就是:$$C_{n+m- ...

  7. CF451E Devu and Flowers 数论

    正解:容斥+Lucas定理+组合数学 解题报告: 传送门! 先mk个我不会的母函数的做法,,, 首先这个题的母函数是不难想到的,,,就$\left (  1+x_{1}^{1}+x_{1}^{2}+. ...

  8. CF451E Devu and Flowers (组合数学+容斥)

    题目大意:给你$n$个箱子,每个箱子里有$a_{i}$个花,你最多取$s$个花,求所有取花的方案,$n<=20$,$s<=1e14$,$a_{i}<=1e12$ 容斥入门题目 把取花 ...

  9. [题解] [CF451E] Devu and Flowers

    题面 题解 就是一个求\(\sum_{i= 1}^{n}x _ i = m\)的不重复多重集的个数, 我们可以由容斥原理得到: \[ ans = C_{n + m - 1}^{n - 1} - \su ...

随机推荐

  1. 通过JS动态的修改HTML元素的样式和增添标签元素等

    一. 通过JS动态的修改HTML元素的样式   1. 要想在js中动态的修改HTML元素的样式,首先需要写document,    document我们称之为文档对象,这个对象中保存了当前网页中所有的 ...

  2. HTML/CSS快速入门

    Web概念 JavaWeb 使用java语言开发基于互联网的项目 软件架构 C/S架构:Client/Server 客户端/服务器 用户本地有一个客户端程序,在远程有一个服务端程序 如QQ,英雄联盟. ...

  3. 码云代码托管平台与TortoiseSVN的使用

    1.到https://gitee.com/进行注册,然后登陆 可以发现可以将项目设为私有 2.下载tortoisesvn,一路next安装即可 3.项目创建 4.下载项目 5.创建文件并提交 6.如何 ...

  4. Linux/Ubuntu 16.04 使用校园网客户端Dr.com DrClient 有线连网,同时开启WiFi热点

    前面写过Ubuntu 16.04 使用校园网客户端 DrClient 无线上网,在这篇文章中将要介绍下,在Ubuntu 16.04上如何使用校园网客户端实现有线登录,这个问题也让博主困惑了很久,但是问 ...

  5. Loj #3093. 「BJOI2019」光线

    Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...

  6. fastJson反序列化异常,JSONException: expect ':' at 0, actual =

    com.alibaba.fastjson.JSONException: expect , actual = at com.alibaba.fastjson.parser.DefaultJSONPars ...

  7. IP包头结构详解

    版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6) IP包头长度(Header Length):长度4比特.这个字段的作用是为了 ...

  8. mysql jdbc 官方编程示例

    /* Basic example of an application using JDBC API of Connector/C++ */ /* Standard C++ includes */ #i ...

  9. “Axure”介绍

    一. Axure RP简介: Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的带注释页面示意图.操作流程图.以及交互设计,并可自动生成用于演示的网页文件和规格文件,以提供演示与 ...

  10. 以API方式调用C# dll,使用OneNote2013 sp1实现OCR识别本地图片

    http://www.cnblogs.com/Charltsing/p/OneNoteOCRAPI.html OneNote2013 OCR API调用使用说明2019.4.17 使用说明:1.安装干 ...