做法:树链剖分+线段树
1.优先检查自己线段树的pushup和pushdown是否写挂,尤其是pushup,大区间的左右颜色分别等于左右区间的左右颜色,但是判断sum是否减一的时候要看左区间的右颜色和右区间的左颜色,弄串了就会WA
2.这道题不需要开longlong,不是longlong的原因
3.如果检查完pushdown和pushup后依然会爆0但AC Hack数据,再检查查询区间颜色段的时候是不是写挂了
注意:
-
看一条链的上下颜色不要弄反,一条链的顶部代表着线段树维护一段区间的左边,底端代表这段区间的右端,记录颜色的时候看看是不是取反了
-
然后判断求和的时候还是检查是不是取反了,在一条链一条链跳跃的时候,检查当前链上底部点的颜色和上一条链的顶端颜色是否一样,弄串就GG了
-
如果两个点已经在同一个链里了,这两个点都要判一下颜色串没串,如果没法保准的话建议对一下题解,这里非常容易弄串
4.如果只A Hack数据的话问题大概就是这些,如果你按照上面三条检查完之后还是没有AC,不要迷惑,肯定是你检查的不够仔细,再去仔细看看吧qwq
很高兴能帮助到调代码的大家 XD