CF451E-Devu and Flowers【组合计数,容斥】
正题
题目链接:https://www.luogu.org/problem/CF451E
题目大意
长度为nnn的序列aia_iai,有如下要求
- ai∈[0...xi]a_i\in[0...x_i]ai∈[0...xi]
- ∑i=1nai=s\sum_{i=1}^na_i=s∑i=1nai=s
求序列个数。
解题思路
考虑容斥,这样我们就可以将条件转换为ai>xia_i>x_iai>xi,然后我们可以让n−xi−1n-x_i-1n−xi−1这样就将条件变为了ai≥0a_i\geq 0ai≥0,然后可以用组合数插板法计算,也就是答案为
∑SCs−∑xi∈S(xi+1)−1n−1∗(−1)∣S∣\sum_{S}C_{s-\sum_{x_i\in S}(x_i+1)-1}^{n-1}*(-1)^{|S|}S∑Cs−∑xi∈S(xi+1)−1n−1∗(−1)∣S∣
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll XJQ=1e9+7;
ll n,s,inv[50],x[50],ans;
bool v[50];
ll power(ll x,ll b)
{ll ans=1;while(b){if(b&1) ans=ans*x%XJQ;x=x*x%XJQ;b>>=1;}return ans;
}
ll C(ll n,ll m)
{if(n<0||m<0||n<m)return 0;if(n%XJQ==0||m==0)return 1;ll x=1;for(ll i=n-m+1;i<=n;i++)x=x*(i%XJQ)%XJQ;return x*inv[m]%XJQ;
}
void dfs(ll dep,ll _,bool flag)
{ll _n=s+n;for(ll i=1;i<=n;i++)if(v[i]) _n-=x[i]+1;if(flag)ans=((ans+_*C(_n-1,n-1))%XJQ+XJQ)%XJQ;if(dep>n) return;v[dep]=1;dfs(dep+1,-_,1);v[dep]=0;dfs(dep+1,_,0);
}
int main()
{scanf("%lld%lld",&n,&s);inv[1]=1;for(ll i=2;i<=20;i++)inv[i]=inv[i-1]*power(i,XJQ-2)%XJQ;for(ll i=1;i<=n;i++)scanf("%lld",&x[i]);ans=C(s+n-1,n-1);dfs(1,1,0);printf("%lld",ans);
}
CF451E-Devu and Flowers【组合计数,容斥】相关推荐
- cf451E. Devu and Flowers(产生不同多重集数量)
cf451E. Devu and Flowers 题意: 有n个箱子,第i个箱子里有ai朵花,同一个箱子里花的颜色一样,不同箱子里的花颜色不一样.现在在这些箱子里选出m朵花组成一束,求一共有多少种方案 ...
- CodeForces - 1486F Pairs of Paths(树上计数+容斥)
题目链接:点击查看 题目大意:给出一棵 nnn 个点的树,再给出 mmm 条路径,现在问有多少个路径对 (x,y)(x,y)(x,y),满足第 xxx 条路径和第 yyy 条路径有且仅有一个交点 题目 ...
- 【笔记】郑州大学ACM实验室寒假新生培训之 排列组合与容斥
>>b站视频链接<< 目录: OP 组合数和排列数 组合数与杨辉三角 Lucas定理 容斥原理 错位排序 m球n盒问题 多重集的r-组合数 ED OP \ 组合数和排列数 对于 ...
- CF(439E - Devu and Birthday Celebration)莫比乌斯容斥
题意:将n个糖果插入f-1个挡板分成f分(a1,a2,a3...af). 问有多少种分法能够使得gcd(a1,a2,a3...af)=1; 解法.莫比乌斯容斥,首先按1为单位分,这时候有C(n-1,f ...
- 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)...
题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...
- 解题报告(五)组合计数(ACM / OI)超高质量题解
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- # CF451 - Devu and Flowers
CF451 - Devu and Flowers n倍经验题: CF451E Devu and Flowers - 洛谷 codeforces传送门 感觉算法进阶指南的题目有空还是要都刷一下 题意: ...
- CodeForces 997C-Sky Full of Stars〖容斥定理+组合计数〗
网页链接:传送门 C. Sky Full of Stars time limit per test : 4 seconds memory limit per test : 256 megabytes ...
- #容斥,组合计数#洛谷 3214 卡农
题目 在集合S=[1∼n]S=[1\sim n]S=[1∼n]中选出mmm个子集,满足三点性质: 所有选出的mmm个子集都不能为空. 所有选出的mmm个子集中,不能存在两个完全一样的集合. 所有选出的 ...
最新文章
- python菜鸟基础教程-python基础菜鸟教程,Python的基础语法
- gcc -ldl 选项作用
- 洪磊父亲避谈洪磊获释 拘留已过24小时留滞期
- 大学生眼中的对方,哈哈
- WORD如何将多文档快速汇总到一份WORD文件里面?
- X Window Bitmaps And Pixmaps
- 翻译 Windows Server 2016和System Center 2016 技术预览版4 使创新更容易
- n型半导体和p型半导体的区别_NPN型三极管和PNP型三极管有什么区别?
- python笔试题 github_在GitHub上收获6519颗星星的Python面试题资源,到底有多牛?
- 土豆聊天poeato Chat注册账号时提示网络刺错误怎么解决
- TCP协议和UDP协议
- PL/SQL——员工涨工资问题
- Discuz!安全防护之注册机防护插件免费发布
- 如何使用python-如何用Python提取中文关键词?
- golang map 获取某个值
- 哈希(哈希表的应用)
- Johnny-Five入门
- 永信至诚成功当选CNCERT网络安全应急服务支撑单位
- Arduino/stm32 智能小车设计(一)
- 安卓刷java系统_xp系统下面(android)安卓手机刷机ROM教程
热门文章
- kafka偏移量保存到mysql里_Kafka 新版消费者 API(二):提交偏移量
- mysql group_concat去重_MySQL group_concat() 函数用法
- java面向对象使用字符串_java面向对象中的String类中12种常用的方法
- 后端学习 - RabbitMQ
- 7-3 符号三角形 (10 分)(思路+详解)
- 每天都在红绿灯前面梭行,不如自己来实现个红绿灯?
- mysql脚本的制作_制作脚本实现mysql自动备份
- [MyBatisPlus]通用枚举
- python中开关_pyq中的开关按钮
- SQL(七) - 事务、索引、视图