AT_agc039_c [AGC039C] Division by Two with Something

题目描述

现在给你一个整数$N$和一个二进制数$X$,对$0 \sim X$之间的每个整数$K$在返回到其原始值之前,需要执行多少次下面的操作: 如果$K$是奇数 $K=(K-1) \div 2$ 如果$K$是偶数 $K=(K \div 2)+2^{N-1}$ 当 $K$ 不可能返回原始值不计入操作次数。

输入格式

第一行输入一个整数$N$,第二行输入一个$N$位的整数$X$。

输出格式

一个整数,表示$0 \sim X$之间的每个整数$K$在返回到其原始值之前,需要执行的操作次数的总和。 **由于答案可能过大,请对最终答案$mod \text{ 998244353}$。**

说明/提示

- $1 \le N \le 2 \times10^5$ - $0 \le X < 2^N$ - $X$是一个长度为$N$的二进制数($X$的数位不足$N$时用前导$0$补齐) - 所有数字都是整数 例如,$K = 3$时,操作为:1,0,4,6,7,3,所以$K=3$时答案是$6$。