异或满足结合律吗_异或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 行,每行描述一个操作,格式如题面所述。输出格式每个询问操

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java数据库系统开发案例精选_Java解析db文件

    java数据库系统开发案例精选_Java解析db文件JAVADB数据库范例关于javaDB的介绍就不说了,直接上例子。首先将derby.jar添加到classpath下面(IDE的话直接引入)importjava.sql.*;importjava.util.*;importjava.io.*;publicclassTest{publicstaticvoidmain(String[]args)throwsException{DB…

    2025年7月31日
    2
  • 内部类(成员内部类、静态内部类、方法内部类)

    内部类(成员内部类、静态内部类、方法内部类)一:成员内部类:最常见的内部类就是成员内部类,也称作普通内部类;1、Inner类定义在Outer类的内部,相当于Outer类的成员变量的位置,Inner类可以使用任意访问修饰符,如:public、private、protected等。2、Inner类中定义的test()方法可以访问Outer类中的数据,不受访问控制符的影响。3、定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去……

    2022年10月11日
    1
  • zigbee学习之路(十二):zigbee协议原理介绍

    zigbee学习之路(十二):zigbee协议原理介绍一.前言从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack是TIZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T

    2022年8月2日
    13
  • java ac自动机_ac自动机java版

    【实例简介】从别的共享资源下载的java版ac自动机,已验证使用非常好。【实例截图】【核心代码】ahocorasick_java-1.1└──ahocorasick_java-1.1├──ahocorasick│├──pom.xml│├──src││└──main││└──java││└──org││…

    2022年4月7日
    52
  • 北京上网首选DNS服务器地址,北京最快的DNS服务器地址,北京DNS大全

    北京上网首选DNS服务器地址,北京最快的DNS服务器地址,北京DNS大全为了提高北京上网用户打开网页的速度,北京上网用户要选择适合北京网络的DNS,很多时候北京上网用户在家或者在办公室上网,经常发现能够上网,但很多的网站和网址打不开,报解析错误,这种情况往往是属于您的DNS使用不当,有时选北京电信联通推荐的DNS也会出现这种情况,具体选那个,之前最好去ping一下,看哪个延迟小一般情况下还是要选择北京电信联通移动的DNS。下面给您推荐在北京常用的DNS。北

    2022年6月4日
    94
  • 有哪些让程序员受益终生的建议

    有哪些让程序员受益终生的建议从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!!一腔肺腑之言,能看进去多少,就看你自己了!!!目录:在校生篇:为什么要尽量进大厂? 如何选择语言及方…

    2022年6月5日
    26

发表回复

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

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