洛谷P4735 最大异或和

Posted 你来看此花时

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷P4735 最大异或和相关的知识,希望对你有一定的参考价值。

电脑从拯救者y7000p 2019换到了m1 air,不想在m1上再折腾一遍hexo,索性就用cnblog了...

信誓旦旦的学了可持久化Trie和01Trie来搞,结果出了一点问题,被卡了好久

先随便糊了一个暴力,用pre记一下异或前缀和,这么裸的一个暴力居然给了73分,11个点wa了3个点,

#include <bits/stdc++.h>
using namespace std;
int Xor=0;
int n,m;
int a[600010],pre[600010];
inline int read() 
    int x=0,f=1; char ch=getchar();
    while(ch<\'0\'||ch>\'9\') f=(ch==\'-\')?-1:1,ch=getchar();
    while(ch<=\'9\'&&ch>=\'0\') x=(x<<3)+(x<<1)+(ch-\'0\'),ch=getchar();
    return x*f;

int main() 
    n=read(),m=read();
    for (int i=1;i<=n;i++) 
        cin>>a[i]; Xor^=a[i];
        pre[i]=pre[i-1]^a[i];
    
    char op;
    int l,r,x;
    for (int i=1;i<=m;i++) 
        cin>>op;
        if(op==\'A\') 
            x=read();
            a[++n]=x;
            Xor^=x;
            pre[n]=pre[n-1]^x;
         else 
            int Max=0;
            l=read(), r=read(), x=read();
            for (int i=l; i<=r; i++) 
                Max=max(Max,pre[i-1]^Xor^x);
            
            cout<<Max<<endl;
        
    
    return 0;

以上是关于洛谷P4735 最大异或和的主要内容,如果未能解决你的问题,请参考以下文章

P4735 最大异或和

P4735 最大异或和

P4735 最大异或和

[P4735] 最大异或和 - 可持久化Trie

[Luogu P4735]最大异或和(可持久化Trie)

洛谷 [P4151] 最大异或和路径