修改数组中的一个位置, 询问区间[l,r]中所有子集的位运算and之和mod,设f=AT1 and AT2 and ... and ATk . 那么,现在问题来了。
考虑维护一个这样的问题: (1) 给出一个数组A,标号为1~n (2) 修改数组中的一个位置。 (3) 询问区间[l,r]中所有子集的位运算and之和mod(109+7)。 位运算and即为“pascal中的and”和“C/C++中的&” 我们定义集合S={ l , l+1 , ... , r-1 , r} 若集合T,T ∩ S = T,则称T为S的子集 设f(T)=AT1 and AT2 and ... and ATk (设k为T集大小,若k=0则f(T)=0) 所有子集的位运算and之和即为∑f(T) 那么,现在问题来了。
(图片来源网络,侵删)
标签: HBC14269Sum题解