记录编号 584691 评测结果 AAAAAWWWWWWWWWWA
题目名称 魔药 最终得分 38
用户昵称 Gravatar宇战 是否通过 未通过
代码语言 C++ 运行时间 0.372 s
提交时间 2023-11-14 17:03:59 内存使用 2.87 MiB
显示代码纯文本
#include<bits/stdc++.h>
    using namespace std;
    int n,m,ans,a[100],o,pp,ppp;
    const int mod=1e9+7;
    void dfs(int x,int s,int t){
        if(x>n){
            int ss=0;
            int now=-1;
            for(int i=1;i<=n;i++){
                if(a[i]!=now){
                    ss++;
                    now=a[i];
                }
            }
            if(ss==m){
                ans++;
                ans%=mod;
            }else if(s!=1){
               ppp++;
               ppp%=mod; 
            }
            return;
        }
        if(s>0){
            a[x]=1;
            dfs(x+1,s-1,t);
        }
        if(t>0){
         a[x]=0;
        dfs(x+1,s,t-1);   
        }
        
        
    }
    int main(){
        freopen("sleeping.in","r",stdin);
        freopen("sleeping.out","w",stdout);
          cin>>n>>m;
          for(int i=1;i<=n;i++){
              char x;
              cin>>x;
              if(x=='1'){
                  o++;
              }else{
                  pp++;
              }
          }
          dfs(1,o,pp);
          cout<<ans<<' '<<ppp;
    }