给你一个数组,让你找
(
∑
i
=
l
r
a
i
=
r
−
l
+
1
)
\left(\sum_{i=l}^{r} a_{i}=r-l+1\right)
(∑i=lrai=r−l+1) 的区间的数量。
思路
所以用一个
m
a
p
map
map 存一下
s
u
m
[
i
]
−
i
sum[i]-i
sum[i]−i ,然后每个贡献就是
C
x
2
C_x^2
Cx2 。特别要处理一下
s
u
m
[
i
]
−
i
=
=
0
sum[i]-i==0
sum[i]−i==0 的情况 ,这时候贡献就不是
C
x
2
C_x^2
Cx2 ,因为不等于零时,我们是考虑在这几个里面任意选两个,就相当于是造了一个区间,当
0
0
0 的情况,可以
[
0
,
i
]
[0,i]
[0,i] 这个区间