P14510 夜里亦始终想念着你 miss
题目描述
有一个一行 $n$ 列的棋盘,其中有些位置放有一枚棋子。你可以按照以下两种方式移动棋子:
- 选择一个位置 $i$($1 < i < n$),若位置 $i - 1, i$ 上有棋子,位置 $i + 1$ 上没有,将位置 $i - 1$ 上的棋子移到位置 $i + 1$ 上。
- 选择一个位置 $i$($1 < i < n$),若位置 $i, i + 1$ 上有棋子,位置 $i - 1$ 上没有,将位置 $i + 1$ 上的棋子移到位置 $i - 1$ 上。
定义一个位置集合 $S \subseteq \{1, 2, \dots, n\}$ 是好的,当且仅当可以通过有限次移动棋子使得棋盘上 $S$ 中的位置上都有棋子,**不需要保证 $\boldsymbol{S}$ 外的位置没有**。
另外有 $q$ 次修改,每次修改时棋盘上的某个位置的状态会发生改变:
- 若修改之前该位置上存在棋子,棋子将被移除,否则该位置将被放上一枚棋子。
请你在所有修改生效之前,以及每个修改生效之后,都求出好的位置集合的个数对 $10^9 + 7$ 取模的值。
输入格式
第一行,两个正整数 $n, q$。
第二行,一个长度为 $n$ 的 $01$ 串。其中第 $i$ 个字符若为 $1$,表示棋盘上第 $i$ 个位置有棋子;否则表示棋盘上第 $i$ 个位置没有棋子。
接下来 $q$ 行,每行一个正整数 $p$,表示棋盘上第 $p$ 个位置的状态发生改变。
输出格式
输出 $(q + 1)$ 行,每行一个非负整数,第 $i$ 行表示第 $(i - 1)$ 次修改之后的答案。
说明/提示
**【样例 1 解释】**
在修改之前,棋盘为 $\texttt{100111}$,合法的集合 $S$ 共有 $32$ 个。
其中一个是 $\{1, 2, 6\}$,因为我们可以进行如下操作:
- 选择 $i = 4$,将位置 $i + 1$ 上的棋子移到位置 $i - 1$ 上。棋盘变为 $\texttt{101101}$。
- 选择 $i = 3$,将位置 $i + 1$ 上的棋子移到位置 $i - 1$ 上。棋盘变为 $\texttt{111001}$。
注意以上操作均为假设,并不会真正地对棋盘进行改动。
现在位置 $1, 2, 6$ 上都有棋子,所以 $S = \{1, 2, 6\}$ 合法。
在修改之后,棋盘变为 $\texttt{100101}$。因为不存在任何两个棋子相邻,所以无法进行操作,那么合法的 $S$ 是 $\{1, 4, 6\}$ 的所有共 $8$ 个子集。
**【样例 3】**
见附件中的 `miss/miss3.in` 与 `miss/miss3.ans`。
该样例满足测试点 $4 \sim 6$ 的约束条件。
**【样例 4】**
见附件中的 `miss/miss4.in` 与 `miss/miss4.ans`。
该样例满足测试点 $13$ 的约束条件。
**【样例 5】**
见附件中的 `miss/miss5.in` 与 `miss/miss5.ans`。
该样例满足测试点 $14 \sim 15$ 的约束条件。
**【样例 6】**
见附件中的 `miss/miss6.in` 与 `miss/miss6.ans`。
该样例满足测试点 $19 \sim 20$ 的约束条件。
**【样例 7】**
见附件中的 `miss/miss7.in` 与 `miss/miss7.ans`。
该样例满足测试点 $21 \sim 25$ 的约束条件。
**【数据范围】**
对于所有测试数据,保证 $1 \le n \le 5 \times 10^5$,$0 \le q \le 5 \times 10^5$。
::cute-table{tuack}
| 测试点编号 | $n \le$ | $q \le$ | 特殊性质 |
| :-: | :-: | :-: | :-: |
| $1 \sim 3$ | $20$ | $0$ | 无 |
| $4 \sim 6$ | ^ | $5 \times 10^5$ | ^ |
| $7$ | $4000$ | $0$ | 有 |
| $8 \sim 9$ | ^ | ^ | 无 |
| $10$ | ^ | $4000$ | 有 |
| $11 \sim 12$ | ^ | ^ | 无 |
| $13$ | ^ | $5 \times 10^5$ | 有 |
| $14 \sim 15$ | ^ | ^ | 无 |
| $16$ | $5 \times 10^5$ | $0$ | 有 |
| $17 \sim 18$ | ^ | ^ | 无 |
| $19 \sim 20$ | ^ | $5 \times 10^5$ | 有 |
| $21 \sim 25$ | ^ | ^ | 无 |
特殊性质:保证棋盘上所有的第奇数个位置始终有棋子。