编程题
### 问题描述 安安有一个包含 $n$ 个正整数的数列 $A$。他想将这个数列分成 $k$ 个部分,每个部分的值是该部分的数的异或和。然而,他对每个部分都有一个要求,即第 $i$ 个部分的值必须大于或等于 $s_i$。 现在,安安想知道,如果满足这些要求,那么所有部分的值的和最大可以是多少?请你帮助安安解决这个问题。 异或和:所有部分的和值异或起来,例如 $\lbrace a_1,a_2,a_3\rbrace$ 的异或和为 $XorSum=a_1 \otimes a_2 \otimes a_3$。 ### 输入格式 第一行包含两个整数 $n$ 和 $k$,表示数列 $A$ 的长度和要分成的部分数量。 第二行包含 $n$ 个整数,表示数列 $A$ 的元素。 第三行包含 $k$ 个整数,表示每个部分的最小值 $s_i$。 ### 输出格式 输出一个整数,表示在满足要求情况下分段的最大和值。 ### 样例输入 ``` 4 2 7 2 5 5 6 2 ``` ### 样例输出 ``` 9 ``` ### 说明 我们分为 $\lbrace 7\rbrace,\lbrace 2,5,5\rbrace$。 结果为 $7 + 2 = 9$。符合每段的要求,并且和值最大。 ### 评测数据范围 $1 \le k \le n \le 200, 1 \le s_i, a_i \le 10^9$。
查看答案
赣ICP备20007335号-2