3259: 有趣的&运算
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:8
解决:6
题目描述
## 题目描述
&,中文读作“与”。与运算是位运算中非常重要的一种运算。规则和同学们熟知的if语句中的&&很像,一句话总结,有0则为0。
我们可以给出其四种运算规则:1&1=1,1&0=0,0&1=0,0&0=0。
如果我们想计算两个十进制数x和y进行与运算的结果,我们需要将两个十进制数先写为二进制数,然后上下对其进行按位计算。
举个例子,5&7的计算方法如下:
$5=(101)_2$,$7=(111)_2$
$$
101\\
\frac{111}{101}
$$
$(101)_2$=(5)10 所以5&7的结果就是5。
当然,编程中更加容易,你只需要写一行代码即可:
```cpp
cout<<(5&7)<<endl;
```
现在TooY0ung给出 $n$ 个正整数,$a_1,a_2...a_n$
定义$g(l,r)=a[l]$&$a[l+1]$&$...$&$a[r]$,你可以将这n个数划分为任意段连续的子段$[1,r_1],[r_1+1,r_2]...[r_{m-1}+1,n]$。
问${g(1,r_1)+g(r_1+1,r_2)+...+g(r_{m-1}+1,n)}$的最小值。
## 输入格式
第一行一个整数 $n$。
接下来一行 $n$ 个正整数。
## 输出格式
一行一个整数。
```input1
3
1 2 3
```
```output1
0
```
## 样例解释
分为[1,2],[3],结果为3。
分为[1],[2,3],结果为1。
分为[1,2,3],结果为0。
## 数据规模与约定
对于 $100\%$ 的数据,$0 < n \le 200000$,$1\le a_i \le 10^9$
- 子任务1(30分):$n=2$。
- 子任务2(30分):$n \le 10$
- 子任务3(40分):没有特殊限制。
样例输入 复制
3 1 2 3
样例输出 复制
0