给一个长度为 \(n\) 的字符串 \(s\),\(q\) 次询问,每一次 \(l\) 和 \(r\) 区间内有多少个 \(s_i\) 等于 \(s_{i-1}\)。
\(10^5\) 的数据 \(O(N^2)\) 暴力肯定行不通。于是我们考虑预处理前缀和,处理到 \(i\) 下标以及之前有多少个 \(s_i\) 等于 \(s_{i-1}\)。
每一次查询 \(O(1)\) 回答。注意要减去的边界是 \(qzh_l\),因为 \(qzh_l\) 其实是包含着 \(s_l\) 与 \(s_{l-1}\) 的贡献。所以这个不能算入这个区间的贡献中。因此前缀和的公式应该是 \(qzh_r - qzh_l\)。
link。
标签:前缀,题解,ABC328C,qzh,区间,Consecutive From: https://www.cnblogs.com/gsczl71/p/17854590.html