200653: [AtCoder]ARC065 F - Shuffling

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $900$ points

Problem Statement

There is a string $S$ of length $N$ consisting of characters 0 and 1. You will perform the following operation for each $i = 1, 2, ..., m$:

  • Arbitrarily permute the characters within the substring of $S$ starting at the $l_i$-th character from the left and extending through the $r_i$-th character.

Here, the sequence $l_i$ is non-decreasing.

How many values are possible for $S$ after the $M$ operations, modulo $1000000007(= 10^9+7)$?

Constraints

  • $2≦N≦3000$
  • $1≦M≦3000$
  • $S$ consists of characters 0 and 1.
  • The length of $S$ equals $N$.
  • $1≦l_i < r_i≦N$
  • $l_i ≦ l_{i+1}$

Input

The input is given from Standard Input in the following format:

$N$ $M$
$S$
$l_1$ $r_1$
:
$l_M$ $r_M$

Output

Print the number of the possible values for $S$ after the $M$ operations, modulo $1000000007$.


Sample Input 1

5 2
01001
2 4
3 5

Sample Output 1

6

After the first operation, $S$ can be one of the following three: 01001, 00101 and 00011.

After the second operation, $S$ can be one of the following six: 01100, 01010, 01001, 00011, 00101 and 00110.


Sample Input 2

9 3
110111110
1 4
4 6
6 9

Sample Output 2

26

Sample Input 3

11 6
00101000110
2 4
2 3
4 7
5 6
6 10
10 11

Sample Output 3

143

Input

题意翻译

有一个长度为 $N$ 的 $01$ 串 $S$。对于每个 $i=1,2,\ldots,M$,你将要按顺序地进行以下操作: * 任意地排列 $S$ 中第 $l_i$ 到第 $r_i$ 个字符之间的字符。 保证 $l_i$ 是不降的。 请你求出在 $M$ 次操作后,可以出现多少种不同的 $01$ 串。答案对 $10^9+7$ 取模。 $N, M \leq 3000$。

加入题单

上一题 下一题 算法标签: