| 比赛 | 
    CSP2023-S模拟赛 | 
    评测结果 | 
    AAATTTAWWWWWWWWWWWWW | 
    | 题目名称 | 
    Maximized Combos | 
    最终得分 | 
    20 | 
    | 用户昵称 | 
    hnzzlza | 
    运行时间 | 
    3.466 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    5.08 MiB  | 
    | 提交时间 | 
    2023-10-17 20:45:58 | 
显示代码纯文本
#include <bits/stdc++.h>
#define lowbit(x) (x&-x)
using namespace std;
long long n,m,mx,a[200005],l;
int main(){
	freopen("combos.in","r",stdin);
	freopen("combos.out","w",stdout);
	cin>>n>>m;
	for(int i=0;i<n;++i)mx=mx*2+1;
	for(int i=1;i<=mx;++i){
		int num=0;
		for(int k=i;k;k-=lowbit(k))num++;
		if(num==m)a[++l]=i;
	}
	for(int lx=1;lx<=m;++lx){
		int ans=0;
		for(int i=1;i<=l;++i){
			int tot=0,maxl=-1;
			for(int j=a[i];j!=0;j=j>>1){
				if(j&1)tot++;
				else {
					maxl=max(tot,maxl);
					tot=0;
				}
			}
			maxl=max(tot,maxl);
			if(maxl==lx)ans=(ans+1)%998244353;
		}
		cout<<ans<<'\n';
	}
	return 0;
}