#YHCSPJMN100003. 异或子段和
异或子段和
异或子段和
题目背景
在育华学校的算法实践课程中,小核桃学习了位运算中的异或操作,并遇到了一个有趣的问题。需要通过合理选择数组的异或区间和求和区间,来获得最大的求和值,以此锻炼同学们对异或运算性质的理解,以及动态规划在处理子段和问题中的应用能力。
题目描述
小核桃在学习位运算的异或操作后,面临这样的问题:
给定长度为 的数组和数字 ,可进行以下操作:
- 选择一段区间(可空),将区间内所有数与 异或。
- 再随机选择一段连续区间(可空),对区间内数求和。
目标是让第二次求和的值最大,求这个最大可能值。
输入格式
- 第一行:两个整数 ( )。
- 第二行: 个整数 ( )。
输出格式
输出一行一个整数,表示最大可能的求和值。
样例
样例输入 1
4 3
4 4 4 -10
样例输出 1
21
样例解释
选择前三个数异或 ,数组变为 ,最大子段和为 (选择前三个数求和 )。
数据规模与测试点(共20个测试点,育华学校专项 )
测试点编号 | 范围 | 范围 | 特殊性质 |
---|---|---|---|
1 | |||
2-3 | |||
4-5 | |||
6 | |||
7-10 | |||
11-14 | |||
15-18 | |||
19-20 |
对所有测试点,数组中数都满足 。
相关
在下列比赛中: