POJ2777 Count Color 线段树

题意:

给一个固定长度为L的画板

有两个操作:

C A B C:区间AB内涂上颜色C。

P A B:查询区间AB内颜色种类数。


思路:

首先显然是要线段树。

每个节点有如下参数:

l,r 表示区间。

int color表示颜色,对于颜色要用位运算。


刚开始我的做法是对于每个C操作,就更新区间为AB的节点及其所有子节点。

然后TLE了。


其实本质原因是没有理解好线段树的精髓。

线段树的精髓在于插入(或者更新)和查询都是从根节点开始!

所以我们无需每次涂色都更新到叶子节点。

具体的解释在代码里。






posted on 2011-12-01 23:17  不是我干的  阅读(240)  评论(0)    收藏  举报