Xor 特殊情况_题解

【题解提供者】吴立强

解法

思路

注意到对于单次的查询区间 [ l , r ] [l,r] [l,r],可以通过前缀异或和拆分为两个新的区间查询: [ 0 , l − 1 ] , [ 0 , r ] [0, l-1], [0,r] [0,l−1],[0,r]。

对于任意区间 [ 0 , R ] [0,R] [0,R] 可以找到最大的 x x x( x ≤ R x \le R x≤R 且 x m o d    4 = 0 x\mod 4 = 0 xmod4=0), [ 0 , R ] [0,R] [0,R] 的异或和等价于 [ x , R ] [x,R] [x,R] 的异或和。(根据上一题题解中的【拓展】可以求证此结论)

代码展示

cpp 复制代码
#include <iostream>
using namespace std;

int get(int x) {
    if(x < 0) return 0;
    int ans = 0;
    for(int i = x / 4 * 4; i <= x; i ++) ans ^= i;
    return ans;
}
int main() {
    int t;  cin >> t;
    while(t --) {
        int l, r;  cin >> l >> r;
        cout << (get(l - 1) ^ get(r)) << endl;
    }
    return 0;
}

算法分析

程序时间复杂度为 O ( t ) O(t) O(t)。

相关推荐
Sheep Shaun1 分钟前
二叉搜索树(下篇):删除、优化与应用
数据结构·c++·b树·算法
极简车辆控制3 分钟前
基于LQR全主动七自由度全车悬架车身姿态控制
算法
s090713610 分钟前
常用FPGA实现的图像处理算法
图像处理·算法·fpga开发
鱼鱼块13 分钟前
二叉搜索树:让数据在有序中生长的智慧之树
javascript·数据结构·面试
core51217 分钟前
SVM (支持向量机):寻找最完美的“分界线”
算法·机器学习·支持向量机·svm
TG:@yunlaoda360 云老大39 分钟前
华为云国际站代理商的DDM支持哪些拆分算法?
数据库·算法·华为云
qq_430855881 小时前
线代第二章矩阵第五、六、七节矩阵的转置、方阵的行列式、方阵的伴随矩阵
线性代数·算法·矩阵
jianfeng_zhu1 小时前
二叉树的中序线索化,并通过线索化后遍历二叉树
数据结构·链表
C雨后彩虹1 小时前
5G网络建设
java·数据结构·算法·华为·面试
机器学习之心1 小时前
最小二乘支持向量机(LSSVM)结合遗传算法(GA)解决单目标优化问题,MATLAB代码
算法·支持向量机·matlab·单目标优化问题