U535402 【搬运】FR0G EBB

题目背景

出处是山东省集。

题目描述

有一个长度为 $n$ 的 01 串 $a=a_{1} a_{2} \ldots a_{n}$。 初始时 $x=0$,按照 $i=1,2, \ldots, n$ 的顺序对 $x$ 进行操作,对于每次操作: - 如果 $a_{i}=0$,则 $x \leftarrow x-\operatorname{lowbit}(x)$。 - 如果 $a_{i}=1$,则 $x \leftarrow x+\operatorname{lowbit}\left(2^{k}-1-x\right)$。 规定 $\operatorname{lowbit}(0)=0$。定义 $f(a)$ 是所有操作后 $x$ 的值。 给定整数 $r$ 和 $k$,对于每一个 $i=1,2, \ldots, n$,求: - 有多少种补全 01 串的方案使得 $a_i=0$ 且 $f(a)\leq r$。 答案对 $998244353$ 取模。

输入格式

第一行,三个正整数 $n,k,r$。 第二行,一个长为 $n$ 的 01? 字符串 $s$。

输出格式

一行 $n$ 个数,表示 $i=1,2, \ldots, n$ 时答案对 $998244353$ 取模的值。

说明/提示

对于所有数据,$1\leq n\leq 10^5$,$1\leq k\leq 20$,$0\leq r< 2^k$。 共 $25$ 个测试点,每个测试点 $4$ 分。 | 测试点 | $n$ | $k$ | $r$ | |:-:|:-:|:-:|:-:| |$1\sim3$ | $\leq20$ | $\leq 4$ | $