P10066 [CCO 2023] Binaria
题目描述
你被廉价通信组织(CCO)雇佣来研究一项突破性的通信技术:子消息和(SMS)。这个革命性的想法是这样的。
给定一个长度为 $N$ 的二进制字符串和一个满足 $K \leq N$ 的正整数 $K$,该字符串的 SMS 由 $N-K+1$ 个整数组成。序列中的第一个数是前 $K$ 位的和,第二个数是第 $2$ 位到第 $K+1$ 位的和,依此类推,最后一个数是第 $N-K+1$ 位到第 $N$ 位的和。
例如,如果 $K=4$,那么二进制字符串 $110010$ 的 SMS 是 $2,2,1$。这是因为 $1+1+0+0=2,1+0+0+1=2$,以及 $0+0+1+0=1$。
由于你是一个新手,你的工作不是从给定的 SMS 中找到原始的二进制字符串,而是找到可能形成这个 SMS 的二进制字符串的数量。
输入格式
第一行包含两个用空格分隔的整数 $N$ 和 $K$。
第二行包含 $N-K+1$ 个用空格分隔的整数,保证它至少是一个二进制字符串的 SMS。
输出格式
输出 $T$ 对 $10^{6}+3$ 取模的结果,其中 $T$ 是等于与给定 SMS 对应的可能的二进制字符串的总数的正整数。
说明/提示
长度为 $7$ 的可能的字符串有 $1011001$,$1101010$ 和 $1110011$。
对于所有的数据,有 $1\leq N\leq 10^6$,$1 \leq K \leq N$。
| 子任务编号 | 分值 | $N$ 的范围 | $K$ 的范围 |
| :-: | :-: | :-: | :-: |
|1 |12 |$1 \leq N \leq 10$| $K \leq 3$|
|2 |12 | $1 \leq N \leq 10$|无 |
|3 |16 |$1 \leq N \leq 1000$ |$K \leq 10$|
|4 |16 |$1 \leq N \leq 10^{6}$| $K \leq 20$|
|5 |16 | $1 \leq N \leq 10^{6}$| $K\leq 3000$|
|6 |28 |$1 \leq N \leq 10^{6}$|无|