题目大意:
长度为n(1~10^6)的数组A[](0<=A[i]<16),有4中操作。
1:and opn l r l<=i<=r A[i]&opn
2:or opn l r l<=i<=r A[i]|opn
3:xor opn l r l<=i<=r A[i]^opn
1:sum l r l<=i<=r sum{A[l~r]}
操作总数为m(1~10^5)。
题目思路:
很裸的线段树,维护区间中每个数各位上1的个数。
就是要细心,不然可能会写错。
代码:
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include