P14598 [COCI 2025/2026 #2] 搭塔 / Tornjevi

题目背景

本题满分 $110$。

题目描述

有 $n$ 块正方体积木,每块积木的颜色是 $\colorbox{#e82548}{\textcolor{white}{\textsf{红}}}\colorbox{87b3ed}{\textcolor{white}{\textsf{蓝}}}$ 二者之一。第 $i$ 块积木的边长为 $i$。 定义一座塔是合法的,当且仅当: - 相邻的两个积木块的颜色不同; - 从下到上,积木块的边长严格递减。 $q$ 次独立询问,每次询问给定 $l,r$,求出:如果用边长 $l,\ldots,r$ 的积木搭塔,至少要搭几座塔。

输入格式

第一行,两个正整数 $n,q$($1\le n,q\le 10^5$)。 第二行,一个长度为 $n$ 的字符串 $s$。$s_i=\texttt{C}$,表示边长为 $i$ 的积木为 $\colorbox{#e82548}{\textcolor{white}{\textsf{红}}}$ 色;否则 $s_i=\texttt{P}$,表示边长为 $i$ 的积木为 $\colorbox{87b3ed}{\textcolor{white}{\textsf{蓝}}}$ 色。 接下来 $q$ 行,每行两个正整数 $l_i,r_i$($1\le l_i\le r_i\le n$),描述一次询问。

输出格式

输出 $q$ 行,第 $i$ 行一个正整数,描述第 $i$ 个询问的答案。

说明/提示

### 样例解释 **样例二解释**:所有积木都是 $\colorbox{#e82548}{\textcolor{white}{\textsf{红}}}$ 色的,所以只能搭出仅包含一块积木的塔。显然对于一次询问 $l,r$ 的答案为 $r-l+1$。 ### 子任务 - $\text{Subtask 1 (23 pts)}$:$n,q\le 10$; - $\text{Subtask 2 (38 pts)}$:$n,q\le 1000$; - $\text{Subtask 3 (25 pts)}$:至多有 $20$ 块 $\colorbox{87b3ed}{\textcolor{white}{\textsf{蓝}}}$ 色积木。 - $\text{Subtask 4 (24 pts)}$:无额外限制。