01字典樹 求序列完美度 求區間最大異或值

2022-05-01 23:18:15 字數 868 閱讀 9700

解題關鍵:01字典樹模板,用字典樹儲存每個數的二進位制表示,從而動態維護區間上的最大異或值,注意新增和刪除都可以用於乙個change函式表示。

複雜度:$o(n\log n + \log n)$ 

1 #include2

#define maxn 1005

3#define inf 0x3f3f3f3f

4using

namespace

std;

5 typedef long

long

ll;6

inta[maxn];

7int num[32*maxn][2];8

int node[32*maxn][2];9

int val[32*maxn];

10int

sum,ans,l,r,anss,s;

1112

void

init()

1920

void change1(int m,int

x)31

}32 val[pos]=x;33}

3435

int search1(int l,int r,int

x)45

else pos=node[pos][j];46}

47if(w>ans) ans=w,l=l,r=r,anss=val[pos];48}

4950

intmain()

6566

for(int j=i;j<=n;j++) change1(1

,a[j]);67}

68 cout<"

"<"

"<"

"69}

70 }

01 字典樹模板 求XOR最大值

大致題目 有一n個數,給定一些詢問,每次詢問乙個數,問這n個數中與詢問的這個數xor起來最大的那個數是多少.或者與這n個數中異或起來的最大值是多少 等等 相當於求取兩個數異或起來的最大值是多少,這樣就可以暴力乙個,01字典樹找另外乙個 思想 主要是從乙個二進位制位上面去考慮這個問題,因為兩個數異或起...

字典樹 與 01字典樹

字典樹可以降低空間複雜度 01字典樹可以降低時間複雜度。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較...

01字典樹 之 求樹上最長異或路徑

題目描述 給定一棵 n 個點的帶權樹,結點下標從 1 開始到 n 尋找樹中找兩個結點,求最長的異或路徑。異或路徑指的是指兩個結點之間唯一路徑上的所有邊權的異或。洛谷 4551 最長異或路徑 思路,首先dfs處理出每個點到 根 的距離 然後將這些距離存在字典樹中,然後對於每個距離查詢字典樹,得到最優值...