POJ2777 Count Color 线段树
题意:
给一个固定长度为L的画板
有两个操作:
C A B C:区间AB内涂上颜色C。
P A B:查询区间AB内颜色种类数。
思路:
首先显然是要线段树。
每个节点有如下参数:
l,r 表示区间。
int color表示颜色,对于颜色要用位运算。
刚开始我的做法是对于每个C操作,就更新区间为AB的节点及其所有子节点。
然后TLE了。
其实本质原因是没有理解好线段树的精髓。
线段树的精髓在于插入(或者更新)和查询都是从根节点开始!
所以我们无需每次涂色都更新到叶子节点。
具体的解释在代码里。
浙公网安备 33010602011771号