U208699 [E] Game Theory

题目描述

For a string $s_1\dots s_n$ of $n$ bits (i.e., zeros and ones), Bobo computes the $f$-value of $s_1\dots s_n$ by playing the following game. * If all the bits are zero, the game ends. * If there are $k$ ones in the bit string, Bobo flips the $k$-th bit, i.e., $s_k$. * The $f$-value of the bit string is the number of flips Bobo has performed before the game ends. Formally, * If $s_1 = \dots = s_n = 0$, $f(s_1 \dots s_n) = 0$. * Otherwise, assuming that $k = s_1 + \dots + s_n$, $f(s_1 \dots s_n) = f(s_1 \dots s_{k - 1} \overline{s_k} s_{k + 1} \dots s_n) + 1$ where $\overline{c}$ denotes the flip of the bit $c$ such as $\overline{0} = 1$ and $\overline{1} = 0$. Now, Bobo has a bit string $s_1 \dots s_n$ subjecting to $q$ changes, where the $i$-th change is to flip all the bits among $s_{l_i} \dots s_{r_i}$ for given $l_i$, $r_i$. Find the $f$-value **modulo** $998244353$ of the bit string after each change.

输入格式

The input consists of several test cases terminated by end-of-file. For each test case, The first line contains two integers $n$ and $q$. The second line contains $n$ bits $s_1 \dots s_n$. For the following $q$ lines, the $i$-th line contains two integers $l_i$ and $r_i$. * $1 \le n \le 2 \times 10^5$ * $1 \le q \le 2 \times 10^5$ * $s_i \in \{0, 1\}$ for each $1 \leq i \leq n$ * $1 \leq l_i \leq r_i \leq n$ for each $1 \leq i \leq q$ * In each input, the sum of $n$ does not exceed $2 \times 10^5$. The sum of $q$ does not exceed $2 \times 10^5$.

输出格式

For each change, output an integer which denotes the $f$-value modulo $998244353$.

说明/提示

For the first test case, the string becomes `100` after the first change. $f(\texttt{100}) = f(\texttt{000}) + 1 = 1$. And it becomes `111` after the second change. $f(\texttt{111}) = f(\texttt{110}) + 1 = f(\texttt{100}) + 2 = f(\texttt{000}) + 3 = 3$.