题目 20409

搭塔

查看题解 ↗GitHub ↗如何评测
题号
20409
标签
比赛CSP-S
来源
CSP-S 国外模拟赛 32 - T3

第 3 题 搭塔 (tornjevi)

本题使用文件输入输出:输入文件 tornjevi.in,输出文件 tornjevi.out。

本题满分 110。

题目描述

有 nn 块正方体积木,每块积木的颜色是红色、蓝色二者之一。第 ii 块积木的边长为 ii。

定义一座塔是合法的,当且仅当:

  • 相邻的两个积木块的颜色不同;
  • 从下到上,积木块的边长严格递减。

qq 次独立询问,每次询问给定 l,rl, r,求出:如果用边长 l,…,rl, \ldots, r 的积木搭塔,至少要搭几座塔。

输入格式

第一行,两个正整数 n,qn, q(1≤n,q≤1051 \le n, q \le 10^5)。

第二行,一个长度为 nn 的字符串 ss。si=Cs_i = \mathrm{C},表示边长为 ii 的积木为红色;否则 si=Ps_i = \mathrm{P},表示边长为 ii 的积木为蓝色。

接下来 qq 行,每行两个正整数 li,ril_i, r_i(1≤li≤ri≤n1 \le l_i \le r_i \le n),描述一次询问。

输出格式

输出 qq 行,第 ii 行一个正整数,描述第 ii 个询问的答案。

样例

样例 1

输入:

文本
7 4
PPCPPCC
1 7
1 5
3 7
4 5

输出:

文本
3
3
2
2

样例 2

输入:

文本
6 2
CCCCCC
1 6
2 5

输出:

文本
6
4

样例 3

输入:

文本
16 1
PPPCPCCCCCCPPPPP
1 16

输出:

文本
6

提示

样例解释

样例二解释:所有积木都是红色的,所以只能搭出仅包含一块积木的塔。显然对于一次询问 l,rl, r 的答案为 r−l+1r - l + 1。

子任务

  • Subtask 1 (23 pts):n,q≤10n, q \le 10;
  • Subtask 2 (38 pts):n,q≤1000n, q \le 1000;
  • Subtask 3 (25 pts):至多有 20 块蓝色积木。
  • Subtask 4 (24 pts):无额外限制。

数据下载

题目 20409 的公开数据

正在读取文件列表…

常用命令

题目 20409 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。