題意中文我就不說了
解析: 分塊+可持久化trie,先得到字首異或值,插入到trie中,然後分塊,對每一塊,處理出dp[i][j](i代表第幾塊,j代表第幾個位置),dp[i][j]代表以第i塊開始的到j這個位置
的連續字串最大異或值。查詢時,如果l,r不在同一塊內,可以先查詢l所在的塊的後乙個塊到r的連續字串最大異或值,之前的dp就可以派上用場了,然後就是處理l到l所在塊
的這段區間,取兩者最大值即可。
**
#include#includeview code#include
#include
using
namespace
std;
typedef
long
long
ll;const
int maxn=12005
;const
int maxbit=31
;int
n,m,a[maxn];
inttr[maxn];
struct
pertrie
int f(int x,int i)
void insert(int& rt,int pre,int x,int pos) //
插入
int maxxor(int l,int r,int x) //
查詢最大異或值,因為a[i]儲存
return
ret;
}}pt;
int block,num,bel[maxn],dp[120][maxn]; //
dp儲存第幾塊到第幾個數的區間最大異或值
void
init()
}}int getans(int l,int
r)
return
ret;
}int
main()
init();
int last=0
,l,r;
while(m--)
return0;
}
BZOJ2741分塊 字典樹
分塊 字典樹走起f i j 表示在第i,j個塊間選l,r的答案a j i 表示第j個單點到第i個塊的答案兩邊的散點暴力合併加入字典樹統計答案注意陣列的定義 明確陣列的內涵 include include include include define n 12050 define siztrie 12...
BZOJ2741 L 分塊 可持久化trie
lmx i,j role presentation style position relative mx i,j mx i j 表示第i 1 role presentation style position relative i 1 i 1塊左端點到點 j role presentation sty...
BZOJ 3261 最大異或和 可持久化Trie樹
題目大意 給定乙個序列,提供下列操作 1.在陣列結尾插入乙個數 2.給定l,r,x,求乙個l p r,使x a p a p 1 a n 最大 首先我們可以維護字首和 然後就是使x sum n sum p 1 最大 x sum n 為定值,於是用trie樹貪心即可 考慮到l 1 p 1 r 1,我們不...