对于这题,我们可以将1视为 -1,2 视为 1,那么区间 $[l, r]$ 的和就相当于区间中 2 的数量减去 1 的数量,如果该区间的和 > 0,则说明对于区间 $[l, r]$ 而言,区间的主导值为 2 ,否则为 1 。
为了区间和的计算方便,这里采用前缀和来进行处理:
记 s[i] 为前 i 个数的和,那么区间 [l,r] 的和可以表示为: s[r]−s[l−1]
将本题转换为,对于每个位置 r,找到其左侧所有满足 s[r]−s[l]>0,l∈[1,r−1] 的数量
小美记录了一个长度为 n 的操作日志,日志中的每个条目用数字 1(表示成功)或 2(表示失败)标记。
对于日志中的任意一个连续片段(即一段连续的操作记录),我们定义该片段的「主导值」如下:统计片段内 1 和 2 的出现次数,如果 1 的出现次数大于或等于 2 的出现次数,则主导值为 1;否则主导值为 2。换句话说,出现次数较多的数字成为主导值,如果出现次数相同,则选择较小的数字 1。
现在需要求出所有可能的连续片段的主导值之和。
约束条件
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.