zoukankan      html  css  js  c++  java
  • BZOJ1856:[SCOI2010]字符串——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1856

    lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能帮助他吗?

    问题轻易转换成:一个栈,n次入栈,m次出栈,多少种合法的方法。

    答案为C(n+m,m)-C(n+m,m-1)。

    证明方法和卡特兰数证明方法大致相同:https://blog.csdn.net/qq_26525215/article/details/51453493

    所以这就是一道辣鸡结论题。

    #include<map>
    #include<cmath>
    #include<stack>
    #include<queue>
    #include<cstdio>
    #include<cctype>
    #include<vector>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const int p=20100403;
    const int N=2e6+5;
    inline int read(){
        int X=0,w=0;char ch=0;
        while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
        while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        return w?-X:X;
    }
    int jc[N],inv[N];
    inline int qpow(int k,int n){
        int res=1;
        while(n){
        if(n&1)res=(ll)res*k%p;
        k=(ll)k*k%p;n>>=1;
        }
        return res;
    }
    inline int C(int n,int m){
        return (ll)jc[n]*inv[m]%p*inv[n-m]%p;
    }
    inline void init(int n){
        jc[0]=1;
        for(int i=1;i<=n;i++)jc[i]=(ll)jc[i-1]*i%p;
        inv[n]=qpow(jc[n],p-2);
        for(int i=n-1;i;i--)inv[i]=(ll)inv[i+1]*(i+1)%p;
        inv[0]=1;
    }
    inline int sub(int a,int b){
        a-=b;if(a<0)a+=p;return a;
    }
    int main(){
        init(2e6);
        int n=read(),m=read();
        if(m>n){puts("0");return 0;}
        int ans=sub(C(n+m,m),C(n+m,m-1));
        printf("%d
    ",ans);
        return 0;
    }

    +++++++++++++++++++++++++++++++++++++++++++

     +本文作者:luyouqi233。               +

     +欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+

    +++++++++++++++++++++++++++++++++++++++++++

  • 相关阅读:
    mysql调优
    面试、。。。。
    StringBuffer 和 StringBuilder 的 3 个区别
    msql查询指定日期
    Windows 路由跟踪
    Xdebug配置
    ONVIF流媒体播放流程
    Windows 8 SP1 安装StockTrader 6.1
    使用log4c问题
    xcode插件安装
  • 原文地址:https://www.cnblogs.com/luyouqi233/p/9159594.html
Copyright © 2011-2022 走看看