luogu#P4641. [BJWC2008] 序列

[BJWC2008] 序列

题目描述

对一个长度为NN的序列{an}(ai[0,2161])\{a_n\}(a_i\in[0,2^{16}-1]),进行如下两种,共计MM个操作:

  1. A x(x0)(x\ge0)ai=ai+xmod216a_i=a_i+x\mod2^{16}

  2. Q i:询问$Card\{k\mid(a_k\;\&\;2^i)>0,1\le k\le N,k\in\mathbb{Z}\}$的结果

其中&\&运算符为相当于C/C++中的&或Pascal中的and

给定初始序列和操作序列,请你模拟操作过程,并计算所有QQ操作的相应的结果的和。

输入格式

输入文件的第一行包含两个以空格分隔的整数,分别代表N,MN,M

接下来的NN行每行包含一个整数,代表初始序列

接下来的MM行,每行描述一个操作,格式如题目中所述

输出格式

输出文件包含一个整数,表示所有QQ操作的结果的和

3 5
1
2
4
Q 1
Q 2
A 1
Q 1
Q 2
5

提示

初始序列为1  2  41\;2\;4

Q 1:仅a2=2a_2=2满足(ak  &  2i)>0(a_k\;\&\;2^i)>0,该QQ操作的结果为11

Q 2:仅a3=4a_3=4满足(ak  &  2i)>0(a_k\;\&\;2^i)>0,该QQ操作的结果为11

A 1:原序列变为2  3  52\;3\;5

Q 1:仅a1=2,a2=3a_1=2,a_2=3满足(ak  &  2i)>0(a_k\;\&\;2^i)>0,该QQ操作的结果为22

Q 2:仅a3=5a_3=5满足(ak  &  2i)>0(a_k\;\&\;2^i)>0,该QQ操作的结果为11

1+1+2+1=51+1+2+1=5,所以最终结果为5

30%30\%的数据满足1N100,1M10001\le N\le100,1\le M\le1000

100%100\%的数据满足1N,M1051\le N,M\le10^5