p4735 最大異或和
可持久化trie
據n^n=0,我們可以把問題轉化為字首異或和(設為s[i]),也就是求 s[n]^s[p] 的最大值
顯然,這是經典的trie上貪心問題。但是詢問次數過多,我們總不能每次都建一棵完整的樹。
注意到,對於每次詢問我們所需的trie都只有很小的不同。
於是我們就可以用可持久化trie,原理類似主席樹。
(不開o2只有90pts......)
#include#include#include
using
namespace
std;
int n,m,cnt,ch[16800002][2],sum[16800002],rt[600002],s[600002
];inline
void update(int o,int pre,int d,int
x)inline
int query(int o,int pre,int d,int
x)int
main()
}return0;
}
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,...
P4735 最大異或和
點我跳轉 給定乙個非負整數序列 a 初始長度為 n 有 m 個操作,有以下兩種操作型別 1 a x 新增操作,表示在序列末尾新增乙個數 x 序列的長度 n 增大 1 2 q l r x 詢問操作,你需要找到乙個位置 p 滿足 l p r 使得 a p xor a xor xor a n xor x ...