首页 > 其他分享 >Codeforces Round #732 (Div. 1) B

Codeforces Round #732 (Div. 1) B

时间:2022-11-06 22:02:24浏览次数:52  
标签:11 cnt int res Codeforces 732 Div

B. AquaMoon and Chess

简单计数
观察样例 我们发现如果是 00111100
这样是11是随便可以放置在任何地方
但是要是011100这样的 就会有个单独的1出来
我们显然可以这样 011 100 我们左边的11可以在左边随便移动左边的0是l个
01 1100 右边的11也可以在右边随便移动右边的0是r个
显然我这一坨可以忽略这个1 这样方案数是不变的
但是我们会想到另一种情况 就是 11010 这样会越过这个1
->01110->01011 我们会发现忽略这个1也是可以的
所以我们的ans就是C(n+m,n)
n是11的数量 m是0的数量

void solve(){
    int n;cin>>n;
    string s;cin>>s;s=')'+s;
    int len=0,cnt=0,res=0;//res个11 cnt个0
    for(int i=1;i<=n;i++){
        if(s[i]=='0'){
            cnt++;
            res+=len/2;
            len=0;
        }else{
            len++;
        }
    }
    res+=len/2;
    cout<<C(res+cnt,cnt)%mod<<endl;
}

标签:11,cnt,int,res,Codeforces,732,Div
From: https://www.cnblogs.com/ycllz/p/16864281.html

相关文章