B. 有趣的&运算

    传统题 1000ms 256MiB

有趣的&运算

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

&,中文读作 。与运算是位运算中非常重要的一种运算。规则和同学们熟知的 if 语句中的 && 很像,一句话总结,有 00 则为 00

我们可以给出其四种运算规则:1 & 1 = 11 & 0 = 00 & 1 = 00 & 0 = 0

如果我们想计算两个十进制数 xxyy 进行与运算的结果,我们需要将两个十进制数先写为二进制数,然后上下对其进行按位计算。

举个例子,5 & 7 的计算方法如下: 5=(101)25=(101)_27=(111)27=(111)_2

101111101101\\ \frac{111}{101}

(101)2=510(101)_2=5_{10}

所以 5&7 的结果就是 55

当然,编程中更加容易,你只需要写一行代码即可:

cout << (5 & 7) << endl;

现在 翁老师 给出 nn 个正整数,a1,a2...ana_1,a_2...a_n

定义 g(l,r)=al&al+1&&arg(l,r)=a_l\& a_{l+1}\& \cdots\& a_{r},你可以将这 nn 个数划分为任意段连续的子段 [1,r1],[r1+1,r2]...[rm1+1,n][1,r_1],[r_1+1,r_2]...[r_{m-1}+1,n]

g(1,r1)+g(r1+1,r2)+...+g(rm1+1,n){g(1,r_1)+g(r_1+1,r_2)+...+g(r_{m-1}+1,n)} 的最小值。

输入格式

第一行一个整数 nn。 接下来一行 nn 个正整数。

输出格式

一行一个整数。

3
1 2 3
0

样例解释

分为 [1, 2], [3],结果为 33。 分为 [1], [2, 3],结果为 33。 分为 [1, 2, 3],结果为 00

数据规模与约定

对于 100%100\% 的数据,0<n2000000 < n \le 2000001ai1091\le a_i \le 10^9

  • 子任务 113030 分):n=2n=2
  • 子任务 223030 分):n10n \le 10
  • 子任务 334040 分):没有特殊限制。

算法周赛 - round11

未参加
状态
已结束
规则
乐多
题目
4
开始于
2025-3-9 19:15
结束于
2025-3-9 21:15
持续时间
2 小时
主持人
参赛人数
30