差分
差分思想,一言以概之,就是
d
e
l
t
a
[
i
]
=
a
[
i
]
−
a
[
i
−
1
]
delta[i]=a[i]-a[i-1]
delta[i]=a[i]−a[i−1]
a
[
i
]
=
∑
j
=
1
i
d
e
l
t
a
[
j
]
a[i]=\sum_{j=1}^{i}delta[j]
a[i]=∑j=1idelta[j]
然后可以做很多题目
借教室
这题目是对差分数组最初步的应用
星空
差分数组的变式,
d
e
l
t
a
[
i
]
=
a
[
i
]
x
o
r
a
[
i
−
1
]
delta[i]=a[i]xora[i-1]
delta[i]=a[i]xora[i−1]
树上差分
对于一条
u
−
>
v
u->v
u−>v的路径,路径点覆盖
d
[
u
]
+
1
,
d
[
v
]
+
1
,
d
[
l
c
a
]
−
1
,
d
[
f
a
[
l
c
a
]
]
−
1
d[u]+1,d[v]+1,d[lca]-1,d[fa[lca]]-1
d[u]+1,d[v]+1,d[lca]−1,d[fa[lca]]−1
路径边覆盖
d
[
u
]
+
1
,
d
[
v
]
+
1
,
d
[
l
c
a
]
−
2
d[u]+1,d[v]+1,d[lca]-2
d[u]+1,d[v]+1,d[lca]−2