题解 3147: 蓝桥杯2023年第十四届省赛真题-异或和之和

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2023年第十四届省赛真题-异或和之和(递推)

解题思路:异或和有一个性质,如果利用一个数组保存以A[i]结尾的异或和的每一个对应二进制位相加的和,那么求A[i+1]结尾的异或和的二进制位的和时,如果当前的二进制位是0,那么继承上一项位数,如果是1,则变为i减前一项的和加1。计算完毕后将二进制转化为数字。

3147: 蓝桥杯2023年第十四届省赛真题-异或和之和(C++)

**阅读理解:**一开始以为题目所说的[l,r]异或和是指范围内的数两两异或再求和,但是其实是范围内的所有数求异或(和),最后把所有范围的结果加起来求和。**联想到异或和的前缀和数组:**1~i内的所有数求异或和,即:s[i]=s[i-1]^a[i],