bzoj2741 分塊 可持久化Trie

2022-08-13 11:09:12 字數 1030 閱讀 2766

題意中文我就不說了

解析: 分塊+可持久化trie,先得到字首異或值,插入到trie中,然後分塊,對每一塊,處理出dp[i][j](i代表第幾塊,j代表第幾個位置),dp[i][j]代表以第i塊開始的到j這個位置

的連續字串最大異或值。查詢時,如果l,r不在同一塊內,可以先查詢l所在的塊的後乙個塊到r的連續字串最大異或值,之前的dp就可以派上用場了,然後就是處理l到l所在塊

的這段區間,取兩者最大值即可。

**

#include#include

#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;

}

view code

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,我們不...