Luogu P4735 最大異或和

2022-03-27 06:22:06 字數 455 閱讀 5352

題目

建可持久化01trie。

每次建乙個新版本把序列的每個字首和插進去。

新增操作亦如此。

查詢的話就看每個數字取反的一側在01trie的這個區間內是否出現過(也就是\(sum\)是否相等),然後跳兒子。

這裡蘊含了高位貪心的思想。

#includeusing namespace std;

const int n=3e7;

int read()

int n,m,cnt,root[n],son[n][2],d[31],sum[n];char s[3];

int get()

void split(int p)

void update(int &p,int pre)

int query(int l,int r)

int main()

LuoguP4735最大異或和(可持久化Trie)

題目傳送門 給乙個序列 長度為n.有m個操作.1.在序列末尾新增乙個x.2.找到乙個 p l,r 使得 a p a p 1 a n x 最大,其中n為序列的長度。記 all 為 a 1 a 2 a 3 a n 詢問即為找到乙個 p l,r 使得 a 1 a 2 a 3 a p all x 最大。所以...

P4735 最大異或和

給定乙個非負整數序列,初始長度為n。有m個操作,有以下兩種操作型別 a x 新增操作,表示在序列末尾新增乙個數x,序列的長度n 1。q l r x 詢問操作,你需要找到乙個位置p,滿足l p r,使得 a p a p 1 a n x最大,輸出最大是多少。輸入格式 第一行包含兩個整數 n,m,含義如問...

P4735 最大異或和

題目鏈結 給定乙個非負整數序列,初始長度為n。有m個操作,有以下兩種操作型別 a x 新增操作,表示在序列末尾新增乙個數x,序列的長度n 1。q l r x 詢問操作,你需要找到乙個位置p,滿足l p r,使得 a p a p 1 a n x最大,輸出最大是多少。輸入格式 第一行包含兩個整數n,m,...