塔塔拿到了一个长度为n的数组a,下标从1开始,q次询问(op,l,r)。
op=1, 计算al & al+1 | al+2& al+3| al+4...ar, 的值。以&开始,交替 &|。
op=2,计算al∣al+1 & al+2|a1+3&a1+4...ar, 的值。以|开始,交替|&。
例如:询问 (1,3,9),计算a3&a4|a5&a6|a7&a8|a9。询问(2,3,9),计算a3|a4&a5|a6&a7|a8&a9
本题的&和|不区分优先级,从左往右计算。
a∣b表示a按位或b(按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1)。
a&b表示a按位与b(按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的两个二进位两个都为1时,结果位就为1)。
第一行包含两个整数n q(1≤n,q≤2×105),表示数组大小和询问个数。
第二行包含n个整数ai(0≤ai<230),表示数组a。
接下来q行,每行包含三个整数op l r(1≤op≤2,1≤l≤r≤n),表示询问。
输出包含q行,每行包含一个整数,分别表示每次询问结果。
输入
5 2
1 2 3 4 5
1 2 3
2 2 4
输出
2
0
说明
op=1,l=2,r=3对应2&3,答案为2。 op=2,l=2,r=4对应2∣3&4,答案为0。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.