luogu#P10066. [CCO2023] Binaria

[CCO2023] Binaria

题目描述

你被廉价通信组织(CCO)雇佣来研究一项突破性的通信技术:子消息和(SMS)。这个革命性的想法是这样的。

给定一个长度为 NN 的二进制字符串和一个满足 KNK \leq N 的正整数 KK,该字符串的 SMS 由 NK+1N-K+1 个整数组成。序列中的第一个数是前 KK 位的和,第二个数是第 22 位到第 K+1K+1 位的和,依此类推,最后一个数是第 NK+1N-K+1 位到第 NN 位的和。

例如,如果 K=4K=4,那么二进制字符串 110010110010 的 SMS 是 2,2,12,2,1。这是因为 1+1+0+0=2,1+0+0+1=21+1+0+0=2,1+0+0+1=2,以及 0+0+1+0=10+0+1+0=1

由于你是一个新手,你的工作不是从给定的 SMS 中找到原始的二进制字符串,而是找到可能形成这个 SMS 的二进制字符串的数量。

输入格式

第一行包含两个用空格分隔的整数 NNKK

第二行包含 NK+1N-K+1 个用空格分隔的整数,保证它至少是一个二进制字符串的 SMS。

输出格式

输出 TT106+310^{6}+3 取模的结果,其中 TT 是等于与给定 SMS 对应的可能的二进制字符串的总数的正整数。

7 4
3 2 2 2
3

提示

长度为 77 的可能的字符串有 101100110110011101010110101011100111110011

对于所有的数据,有 1N1061\leq N\leq 10^61KN1 \leq K \leq N

子任务编号 分值 NN 的范围 KK 的范围
1 12 1N101 \leq N \leq 10 K3K \leq 3
2
3 16 1N10001 \leq N \leq 1000 K10K \leq 10
4 1N1061 \leq N \leq 10^{6} K20K \leq 20
5 K3000K\leq 3000
6 28