#396. [R63F]这是一个01串题3
[R63F]这是一个01串题3
时空限制
1S/512M
题目描述
给定一个长度为 的 串 。
定义一个字符串是“错列串”,当且仅当任意两个相邻字符都不同。例如 10101、0101 是错列串,而 110、00 不是。
一次操作可以选择字符串中相邻的两个字符并交换它们。
定义 为:将字符串 变成错列串所需的最少操作次数。若无论如何交换都无法变成错列串,则 。
现在给出 个询问,每次给定区间 ,求 。
格式
输入格式
第一行包含两个正整数 和 ,分别表示字符串的长度和询问的个数。
第二行包含一个长度为 的 串 。
接下来 行,每行包含两个正整数 和 (),表示询问的区间。
输出格式
输出共 行,每行包含一个整数,表示对应询问的答案。
样例
样例输入 #1
5 4
01100
1 5
2 3
1 4
3 5
样例输出 #1
1
-1
1
1
样例解释 #1
- 对于第一个询问 ,
01100。它的字符构成为 个0和 个1。我们可以交换第 个和第 个字符,得到错列串01010,只需 次操作,因此答案为 。 - 对于第二个询问 ,
11。无论如何交换也无法变成错列串,因此答案为 。 - 对于第三个询问 ,
0110。可以交换第 个和第 个字符(得到1010),或交换第 个和第 个字符(得到0101),最少操作次数为 。 - 对于第四个询问 ,
100。可以交换第 个和第 个字符,得到010,最少操作次数为 。
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 | 分数 | ||
|---|---|---|---|
对于 的数据,, 中仅包含字符 0 和 1,。
Related
In following contests: