编程题
### 问题描述 小w已经受不了和蚊子没日没夜的斗争了,于是他决定拿起武器,对蚊子进行反击! 小w发现这些蚊子的排布很奇怪,具体来说,我们以可以用一组长度为 $n$ 的有序整数数列 $a$ 来描述蚊子的分布情况,只有当所有整数的二进制位上全部为 $0$ 时,才代表蚊子已经被消灭干净。小w手里的武器很特殊,对于一段连续的子段 $ [a_i,a_j] (0\leq i \leq j < n)$ ,若同一二进制位上的值都为 $1$ ,那么小w可以消耗一点体力将他们的这一二进制位全部变为 $0$ ,现在小w想知道,最少需要多少点体力,能够把这些该死的蚊子全部消灭! ### 输入格式 输入共两行: 第一行,共一个正整数 $n$ ,为整数序列的长度。 第二行,共 $n$ 个数用空格隔开的正整数 $a_i$ ,为描述蚊子分布的整数序列。 ### 输出格式 输出仅一行,包含一个整数,表示答案。 ### 样例输入 ```text 3 1 3 2 ``` ### 样例输出 ```text 2 ``` ### 说明 ### 样例说明 在样例中,首先使用一次武器,将 $a_0$ 和 $a_1$ 的二进制第一位上的 $1$ 清除,然后再使用一次武器,将 $a_1$ 和 $a_2$ 的二进制第二位上的 $1$ 清除,总共消费2点体力。 ### 评测数据规模 对于 $10\%$ 的数据点,保证 $n\leq10$ 。 对于 $30\%$ 的数据点,保证 $n\leq10^3$ 。 对于 $100\%$ 的数据,保证 $1\leq n\leq10^6$ , $0\leq a_i\leq10^9$ 。
查看答案
赣ICP备20007335号-2