【bzoj1856】【Scoi2010】【字符串】
来源:互联网 发布:mac用破解版软件风险 编辑:程序博客网 时间:2024/05/17 02:08
Description
lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能帮助他吗?
Input
输入数据是一行,包括2个数字n和m
Output
输出数据是一行,包括1个数字,表示满足要求的字符串数目,这个数可能会很大,只需输出这个数除以20100403的余数
Sample Input
2 2
Sample Output
2
HINT
【数据范围】
对于30%的数据,保证1<=m<=n<=1000
对于100%的数据,保证1<=m<=n<=1000000
题解:
考虑数形结合和对称性。不是很好说自己yy一下吧。
代码:
#include<iostream>#include<cstdio>#define P 20100403using namespace std;long long n,m;long long power(long long a,long long b){ long long ans; for(ans=1;b;b>>=1,a=a*a%P) if(b&1) ans=ans*a%P; return ans; } long long cal(long long n,long long m){ long long s1(1),s2(1); if (m>n-m) m=n-m; for (long long i=1;i<=m;i++){ (s1*=(n-i+1))%=P; (s2*=i)%=P; } return (s1*power(s2,P-2))%P; } int main(){ cin>>n>>m; cout<<(cal(m+n,m)-cal(m+n,m-1)+P)%P;}
0 0
- BZOJ1856: [Scoi2010]字符串
- 【bzoj1856】【Scoi2010】【字符串】
- bzoj1856: [Scoi2010]字符串
- [BZOJ1856][SCOI2010]字符串
- bzoj1856: [Scoi2010]字符串
- 【bzoj1856】[Scoi2010]字符串
- 【bzoj1856】[Scoi2010]字符串 组合数学
- Bzoj1856:[Scoi2010]字符串:组合数学
- BZOJ1856: [Scoi2010]字符串 组合数学
- bzoj1856: [Scoi2010]字符串 卡特兰数
- 【BZOJ1856】[Scoi2010]字符串【组合数】【神题】
- [BZOJ1856][SCOI2010]字符串(组合数)
- 【卡特兰数】BZOJ1856(Scoi2010)[字符串]题解
- [BZOJ1856][Scoi2010]字符串(卡特兰数+组合数学)
- [bzoj1856][Scoi2010]幸运数字
- bzoj1856 [ SCOI2010 ] -- 卡特兰数
- bzoj1856 字符串 组合数学
- bzoj 1856: [Scoi2010]字符串
- Android 学习笔记三:Activity
- java连接mysql(2)
- Android TabLayout定制CustomView与ViewPager交互双向联动
- linux之cut用法
- UI 动画之UIView动画的 四种 使用含有block的类方法 实现动画
- 【bzoj1856】【Scoi2010】【字符串】
- JAVA基础学习之UDP网络编程
- WIFI营销读书笔记之一:Wifi营销基础知识
- UIView与CALayer
- FZU2203--比赛--10.1训练赛
- JSP include
- ios:数据持久化的几种方法浅谈
- MP之插件开发-事务
- info.plist