题目大意:给你n个1和m个0,你要用这些数字组成一个长度为n+m的串,对于任意一个位置k,要保证前k个数字中1的数量大于等于0的数量,求所有合法的串的数量

答案转化为所有方案数-不合法方案数

所有方案数显然是

现在比较易懂的解法是转化进坐标系

从(0,0)开始,填1视为向右上↗走,填0视为向右下↘走,如果路径经过了y=-1这条直线,说明不合法

把一个经过y=-1的路径的左半部分(即在路径和y=-1交点之前的那部分路径)关于y=-1翻转

因为是从(0,0)出发,现在变成了从(0,-2)出发,求方案数,显然是

所以最终答案是

求逆元即可

  1. #include <queue>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #define N 2000100
  6. #define mod 20100403
  7. #define ll long long
  8. using namespace std;
  9.  
  10. int n,m;
  11. ll mu[N],inv[N];
  12.  
  13. void get_mu()
  14. {
  15. mu[]=mu[]=inv[]=inv[]=;
  16. for(ll i=;i<=n+m;i++)
  17. mu[i]=mu[i-]*i%mod,
  18. inv[i]=(mod-mod/i)*inv[mod%i]%mod;
  19. for(ll i=;i<=n+m;i++)
  20. inv[i]=inv[i]*inv[i-]%mod;
  21. }
  22.  
  23. int main()
  24. {
  25. scanf("%d%d",&n,&m);
  26. get_mu();
  27. ll ans1=mu[n+m]*inv[n]%mod*inv[m]%mod;
  28. ll ans2=mu[n+m]*inv[n+]%mod*inv[m-]%mod;
  29. printf("%lld\n",(ans1-ans2+mod)%mod);
  30. return ;
  31. }

BZOJ 1856 [SCOI2010]生成字符串 (组合数)的更多相关文章

  1. [SCOI2010]生成字符串 题解(卡特兰数的扩展)

    [SCOI2010]生成字符串 Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数 ...

  2. P1641 [SCOI2010]生成字符串

    P1641 [SCOI2010]生成字符串 题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不 ...

  3. Bzoj 1856: [Scoi2010]字符串 卡特兰数,乘法逆元,组合数,数论

    1856: [Scoi2010]字符串 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1194  Solved: 651[Submit][Status][ ...

  4. BZOJ 1856: [Scoi2010]字符串( 组合数 )

    求(0,0)->(n,m)且在直线y=x下方(可以在y=x上)的方案数...同 http://www.cnblogs.com/JSZX11556/p/4908648.html --------- ...

  5. BZOJ 1856: [Scoi2010]字符串 [Catalan数]

    1856: [Scoi2010]字符串 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1418  Solved: 790[Submit][Status][ ...

  6. bzoj 1856: [Scoi2010]字符串 卡特兰数

    1856: [Scoi2010]字符串 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1458  Solved: 814[Submit][Status][ ...

  7. BZOJ1856 [SCOI2010]生成字符串 【组合数】

    题目 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgww想要知道满足要求 ...

  8. [SCOI2010]生成字符串

    题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgww想要知道满足 ...

  9. 卡特兰数 洛谷P1641 [SCOI2010]生成字符串

    卡特兰数 参考博客 介绍 卡特兰数为组合数学中的一种特殊数列,用于解决一类特殊问题 设\(f(n)\)为卡特兰数的第n项 其通项公式为 \[f(n)=\frac{2n\choose n}{n+1} \ ...

随机推荐

  1. [CodeForces]981C Useful Decomposition

    李煜东dalao今天给我们讲课了QwQ ppt上一道题 英文题说一下题意吧,以后又看不懂了 将一棵树分割成多个简单路径,每个边只能在一条路径上,但至少有一个公共节点. 输出简单路径分割方法/No 由题 ...

  2. js里写html代码 啥时候要用“\"转义

    当去掉\的时候 字体变黑 需要加\

  3. WebStorm 6.0 与 7.0 注册码

    经测试 WebStorm 7均可以使用如下注册码,简直就是神key啊! WebStorm 6.0 与 7.0 注册码 User Name: EMBRACE License Key: ===== LIC ...

  4. eclipse转Android studio遇到的那些坑

           公司项目有导入10多个libray,还有涉及ndk,转Android studio时碰到不少问题.前后大概花费5个工作日,中间各种奇葩bug,各种编译出错,非常多还有没错误提示.一度想过 ...

  5. 开源APM应用性能管理工具调研

    近期在设计一个DevOps平台.希望整合一个APM工具进来,由于APM既可用于性能測试也可用于运维性能监控,是典型的Dev+Ops产品. 商业的APM工具国内外已经有不少成熟产品了,而开源的好像不多见 ...

  6. 2015.05.04,外语,读书笔记-《Word Power Made Easy》 14 “如何谈论日常现象” SESSION 41

    1. people are the craziest animals bovine(['bәuvain] adj. (似)牛的, 迟钝的),像牛一样placid(['plæsid] adj. 安静的, ...

  7. tensorflow利用预训练模型进行目标检测(一):安装tensorflow detection api

    一.tensorflow安装 首先系统中已经安装了两个版本的tensorflow,一个是通过keras安装的, 一个是按照官网教程https://www.tensorflow.org/install/ ...

  8. oracle 11g rac 修改VIP、scan VIP、priv IP

    11GR2 RAC modify vip,public ip,private ip,scan vip实施步骤1 修改目的    根据业务的需求,需要由原来的临时IP改为生产ip,以下为调整前后对应的I ...

  9. EOJ 3213 向右看齐

    题目描述 N 头奶牛被紧急动员起来了,它们排成了一条长列.从左向右看,排在第 i 个位置的奶牛身高为 Hi.约翰一声令下,所有奶牛向右看齐.假设每头奶牛只能看到比自己高的牛.请问它们各自看到的最近的一 ...

  10. React中多行文本省略不生效原因

    在普通的前端项目中,在不考虑兼容问题的时候,可以用以下代码实现: overflow : hidden; text-overflow: ellipsis; display: -webkit-box; - ...