比赛 CSP2023-S模拟赛 评测结果 AAAAAAATTTTTTTTTTTAT
题目名称 Maximized Combos 最终得分 40
用户昵称 郑霁桓 运行时间 12.209 s
代码语言 C++ 内存使用 5.00 MiB
提交时间 2023-10-17 20:48:03
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005];
long long dfs(long long x,long long ps,long long t,long long fp,bool lp){
    if(fp>m){
        return 0;
    }
    long long s=0;
    if(ps==n+1){
        if(fp<m){
            return 0;
        }
        return 1;
    }
    if(n-ps+1<m-fp){
        return 0;
    }
    if(t+m-fp<x&&lp==0){
        return 0;
    }
    if(t==x){
        a[ps]=0; 
        return dfs(x,ps+1,0,fp,1);
    }
    if(ps==n-x+t+1&&lp==0){
        return 1;
    }else{
        a[ps]=0;
        s+=dfs(x,ps+1,0,fp,lp);
        a[ps]=1;
        s+=dfs(x,ps+1,t+1,fp+1,lp);
    }
    return s;
}
int main(){
    freopen("combos.in","r",stdin);
    freopen("combos.out","w",stdout);
    scanf("%lld%lld",&n,&m);
    if(m>n){
        for(int i=1;i<=m;i++){
            puts("0");
        }
        return 0;
    }
    if(m==n){
        for(int i=1;i<m;i++){
            puts("0");
        }
        cout<<1;
        return 0;
    }
    for(int i=1;i<=m;i++){
        printf("%lld",dfs(i,1,0,0,0));
        puts("");
    }
    return 0;
}//0 1 0 0 1 1