比赛 中秋节快乐! 评测结果 AAAAAAAAAAEEEEEEEEEE
题目名称 数列 最终得分 50
用户昵称 健康铀 运行时间 3.029 s
代码语言 C++ 内存使用 35.29 MiB
提交时间 2024-09-17 11:11:23
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long n,m,k,v[105],a[105],f[35][120005];
long long get(long long x){
	int res=0;
	while(x){
		x-=(-x&x);
		res++;
	}
	return res;
}
long long dfs(int x,long long fa){
	if(x>=n+1)
		return get(fa)<=k;
	if(f[x][fa]!=-1)
		return f[x][fa];
	long long res=0;
	for(int i=0;i<=m;i++){
		a[x]=i;
		res=(res+dfs(x+1,fa+(1<<i))*v[i]%mod)%mod;
	}
	return f[x][fa]=res;
}
int main(){
	freopen("2021sequence.in","r",stdin);
	freopen("2021sequence.out","w",stdout);
	memset(f,-1,sizeof(f));
	cin>>n>>m>>k;
	for(int i=0;i<=m;i++)
		cin>>v[i];
	cout<<dfs(1,0);
	return 0;
}