pku 2777Count Color 线段树 懒惰标记 位运算(位或)
懒惰标记这个知识点 可以参考 http://blog.csdn.net/weizhuwyzc000/article/details/50445710
最主要的是位运算 利用位或(只要对应的二个二进位有一个为1时,结果位就为1) 比如111 表示这个区间红黄蓝都有 则另一个区间就可以用101 表示只有红蓝 利用位或就可以让父节点 为111 表示这个区间三个颜色都有。 这种用二进制表示的方法 既能够表示出颜色个数又能表示不同颜色存在状况 ,当初怎么想也想不到,值得学习。
利用
1<<(value-1)
来标记,每个叶子的颜色。
其中value表示的是颜色的数字
代码见 https://www.cnblogs.com/dongsheng/archive/2012/08/08/2628845.html