A34009.[NOIP2021] 数列
提高+/省选-
NOIP提高组
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定整数 n,m,k,和一个长度为 m+1 的正整数数组 v0,v1,…,vm。
对于一个长度为 n,下标从 1 开始且每个元素均不超过 m 的非负整数序列 {ai},我们定义它的权值为 va1×va2×⋯×van。
当这样的序列 {ai} 满足整数 S=2a1+2a2+⋯+2an 的二进制表示中 1 的个数不超过 k 时,我们认为 {ai} 是一个合法序列。
计算所有合法序列 {ai} 的权值和对 998244353 取模的结果。
输入格式
输入第一行是三个整数 n,m,k。
第二行 m+1 个整数,分别是 v0,v1,…,vm。
输出格式
仅一行一个整数,表示所有合法序列的权值和对 998244353 取模的结果。
输入输出样例
输入#1
5 1 1 2 1
输出#1
40
输入#2
见附件中的 sequence/sequence2.in
输出#2
见附件中的 sequence/sequence2.ans
说明/提示
【样例解释 #1】
由于 k=1,而且由 n≤S≤n×2m 知道 5≤S≤10,合法的 S 只有一种可能:S=8,这要求 a 中必须有 2 个 0 和 3 个 1,于是有 (25)=10 种可能的序列,每种序列的贡献都是 v02v13=4,权值和为 10×4=40。
【数据范围】
对所有测试点保证 1≤k≤n≤30,0≤m≤100,1≤vi<998244353。
测试点 | n | k | m |
---|---|---|---|
1∼4 | =8 | ≤n | =9 |
5∼7 | =30 | ≤n | =7 |
8∼10 | =30 | ≤n | =12 |
11∼13 | =30 | =1 | =100 |
14∼15 | =5 | ≤n | =50 |
16 | =15 | ≤n | =100 |
17∼18 | =30 | ≤n | =30 |
19∼20 | =30 | ≤n | =100 |