异或满足结合律吗_异或1⊕0的结果是

异或满足结合律吗_异或1⊕0的结果是给定一个非负整数序列 a,初始长度为 N。有 M 个操作,有以下两种操作类型:A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大 1。Q l r x:询问操作,你需要找到一个位置 p,满足 l≤p≤r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出这个最大值。输入格式第一行包含两个整数 N,M,含义如问题描述所示。第二行包含 N 个非负整数,表示初始的序列 A。接下来 M 行,每行描述一个操作,格式如题面所述。输出格式每个询问操


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个非负整数序列 a,初始长度为 N。

有 M 个操作,有以下两种操作类型:

A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大 1。
Q l r x:询问操作,你需要找到一个位置 p,满足 l≤p≤r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出这个最大值。
输入格式
第一行包含两个整数 N,M,含义如问题描述所示。

第二行包含 N 个非负整数,表示初始的序列 A。

接下来 M 行,每行描述一个操作,格式如题面所述。

输出格式
每个询问操作输出一个整数,表示询问的答案。

每个答案占一行。

数据范围
N,M≤3×105,0≤a[i]≤107。

输入样例:
5 5
2 6 4 3 6
A 1 
Q 3 5 4 
A 4 
Q 5 7 0 
Q 3 6 6 
输出样例:
4
5
6
#include<bits/stdc++.h>
using namespace std;
const int K = 25;
const int M = 6e6 + 10;
const int N = 6e6 + 10;
int trie[M * K][2],ctx;
int root[N],max_id[M * K];
int s[N];
int query(int l,int p,int C){ 
   
    if(root == 0)return 0;
    for(int i = 24;i >= 0;i --){ 
   
        int a = ((C >> i) & 1);
        if(trie[p][a ^ 1] && max_id[trie[p][a ^ 1]] >= l){ 
   
            p = trie[p][a ^ 1];
        }else { 
   
            p = trie[p][a];
        }
    }
    return s[max_id[p]];
}
void insert(int bit,int x,int p,int q,int d){ 
   
    if(bit < 0){ 
   
        max_id[p] = d;
        return;
    }else{ 
   
        int a = ((x >> bit) & 1);
        if(q)trie[p][a ^ 1] = trie[q][a ^ 1];
        trie[p][a] = ++ ctx;
        int t = p;
        q = trie[q][a],p = trie[p][a];
        insert(bit - 1,x,p,q,d);
        max_id[t] = max(max_id[trie[t][0]],max_id[trie[t][1]]);
    }
}
int main(){ 
   
    int n,m;
    cin>>n>>m;
    int now = 0,x;
    int e = 0;
    for(int i = 0;i < n;i ++){ 
   
        scanf("%d",&x);
        root[i + 1] = ++ ctx;
        insert(24,x ^ now,root[i + 1],root[i],i + 1);
        now ^= x;
        s[i + 1] = now;
        e = x;
    }
    char t;
    int l,r;
    int c = 1;
    for(int i = 0;i < m; i++){ 
   
        scanf(" %c",&t);
        if(t == 'A'){ 
   
            scanf("%d",&x);
            root[n + c] = ++ ctx;
            insert(24,now ^ x,root[n + c],root[n + c - 1],n + c);
            now ^= x;
            s[n + c] = now;
            e = x;
            c ++;
        }
        else { 
   
            scanf("%d %d %d",&l,&r,&x);
            printf("%d\n",(query(l - 1,root[r - 1],now ^ x) ^ (now ^ x)));
        }
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168600.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ext grid设置选中行

    ext grid设置选中行varmodel=grid.getSelectionModel(); model.selectAll();//选择所有行 model.selectFirstRow();//选择第一行 model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认falsemodel.selectN

    2022年7月27日
  • RELU激活函数作用「建议收藏」

    RELU激活函数作用「建议收藏」梯度消失现象:在某些神经网络中,从后向前看,前面层梯度越来越小,后面的层比前面的层学习速率高。梯度消失原因:sigmoid函数导数图像导数最大为0.25&lt;1权重初始值通常使用一个高斯分布所以|w|&lt;1,所以wjσ′(zj)&lt;0.25,根据链式法则计算梯度越来越小。由于层数的增加,多个项相乘,势必就会导致不稳定的情况。sigmoid激活函数的…

    2022年6月16日
  • 使用CGlib实现Bean拷贝(BeanCopier)「建议收藏」

    使用CGlib实现Bean拷贝(BeanCopier)「建议收藏」在做业务的时候,我们有时为了隔离变化,会将DAO查询出来的Entity,和对外提供的DTO隔离开来。大概90%的时候,它们的结构都是类似的,但是我们很不喜欢写很多冗长的b.setF1(a.getF1())这样的代码,于是我们需要BeanCopier来帮助我们。BeanCopier其实已经有很多开源版本,例如DozerMapper、ApacheBeanUtils、Spring、JoddBeanU…

    2022年9月5日
  • phpstorm2021.9激活码[最新免费获取]

    (phpstorm2021.9激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

    2022年3月26日
  • Android中ActivityManager学习笔记(1)-MemoryInfo「建议收藏」

    Android中ActivityManager学习笔记(1)-MemoryInfo「建议收藏」ActivityManager       与系统中所有的Activity进行交互的类。官网一句话解释了这个东西,但是有点随意了。ActivityManager的作用很多,我们通过它获得内存信息,进程信息,还可以终止某个进程。当然啦,只能终止用户的进程,系统的进程是杀死不了的。下面我通过实例,一步一步学习它的具体作用,我也是刚学,不能从宏观的角度给大家解释清楚它的具体作用。希望通过程序一

    2022年9月6日
  • Windows 手动 修改host文件「建议收藏」

    Windows 手动 修改host文件「建议收藏」在C:\Windows\System32\drivers\etc\目录下有一个hosts文件,复制出来,修改后再粘贴回去(注意:一定要复制出来再修改,否则无法正常保存)

    2022年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号