编程题
### 问题描述 现在给定你一个长度为 $n$ 的字符串 $a$,这个字符串由 $0,1,2$ 构成。 假设存在一个由 `true` 和 `false` 构造出的长度为 $n+1$ 的序列 $S$,我们定义序列 $S$ 相邻两个元素之间有一个空槽,现在序列 $S$ 一共有 $n$ 个空槽。 我们将字符串 $a$ 每一项按顺序从左到右依次填入到序列 $S$ 的空槽中,此时我们定义 $a[i]=0$ 为 $S$ 相邻的两个元素做与运算,$a[i]=1$ 为相邻的两个元素做或运算,$a[i]=2$ 为相邻的两个元素做异或运算。 接下来我们将序列 $S$ 从左到右依次执行位运算,例如 $a=012,S=[true,false,true,false]$,则该运算最终定义为 $true \And false|true\oplus false=true$。 注意:计算机默认优先级为 $\And > \oplus >|$,而我们在这里的定义为依次运算,所以你无需考虑运算符优先级,只需从左往右依次计算即可。 最后询问你,在 $a$ 字符串每一项插入到 $S$ 序列后使得运算结果为 $true$ 的 $S$ 序列由多少种不同构造方法,输出结果对 $998244353$ 取模。 定义 $true=1,false=0$。 与运算: $1\And1=1,1\And0=0,0\And0=0$。 或运算:$1|1=1,1|0=1,0|0=0$。 异或运算: $1\oplus 1=0,1\oplus0=1,0\oplus0=0$。 ### 输入格式 第一行输入一个整数 $n$ 表示字符串 $a$ 长度。 第二行输入长度为 $n$ 的字符串。 ### 输出格式 输出 $S$ 有多少种不同的构造方式,对 $998244353$ 取模。 ### 样例输入 ```text 7 0121111 ``` ### 样例输出 ```text 248 ``` ### 评测数据规模 $1\le n \le 10^5$。
查看答案
赣ICP备20007335号-2