摘要: 题意:给定包含 `a,b,c` 的字符串,长度 $n \leq 2 \times 10^5$,求所有区间权值和,区间权值为出现次数最多字母的个数减去出现次数最少字母的个数(出现次数不为0)。思路:先统一式子,包含3种字母区间 $val_{l,r} = \frac{|c_a - c_b| + |c_b - c_c| + |c_c - c_a|}2$ ,包含2种字母区间 $val_{l,r} = |c_a - c_b|$ ,1种字母区间无贡献。为简化维护,贡献乘2去分母,枚举两个字母 $A,B$ ,对于含 $A,B$ 区间算 $2|c_A - c_B|$ ,含三种字母区间减多余贡献算 $-|c_A - c_B|$ 。枚举区间右端点 $r$ ,用 $cnt_x$ 存差值为 $x$ 的区间个数及偏移量 $tag$ 从 $r - 1$ 转移,时间复杂度为线性 。 阅读全文
posted @ 2025-10-23 09:57 wing_heart 阅读(8) 评论(0) 推荐(0)