AT_arc065_d [ARC065F] シャッフル

题目描述

有一个长度为 $N$ 的只包含 `0` 和 `1` 的字符串 $S$。你需要按照以下方式,对每个 $1 \leq i \leq M$,按 $i$ 的升序依次进行如下操作: - 将 $S$ 的第 $l_i$ 个字符到第 $r_i$ 个字符(从左到右数)组成的子串,任意重新排列。 其中,$l_i$ 是非递减的。 请你求出经过 $M$ 次操作后,$S$ 可能出现的不同字符串的数量,结果对 $1000000007 (=10^9+7)$ 取模。

输入格式

输入通过标准输入给出,格式如下: > $N$ $M$ $S$ $l_1$ $r_1$ : $l_M$ $r_M$

输出格式

输出经过 $M$ 次操作后,$S$ 可能出现的不同字符串的数量,对 $1000000007$ 取模。

说明/提示

## 限制条件 - $2 \leq N \leq 3000$ - $1 \leq M \leq 3000$ - $S$ 只包含 `0` 和 `1`。 - $S$ 的长度等于 $N$。 - $1 \leq l_i < r_i \leq N$ - $l_i \leq l_{i+1}$ ## 样例解释 1 第一次操作后,$S$ 可能出现的字符串有 `01001`、`00101`、`00011`,共 $3$ 种。第二次操作后,$S$ 可能出现的字符串有 `01100`、`01010`、`01001`、`00011`、`00101`、`00110`,共 $6$ 种。 由 ChatGPT 4.1 翻译