字典樹經典問題

2022-05-20 21:04:29 字數 973 閱讀 1114

題意

zeus 和 prometheus 做了乙個遊戲,prometheus 給 zeus 乙個集合,集合中包含了n個正整數,隨後 prometheus 將向 zeus 發起m次詢問,每次詢問中包含乙個正整數 s ,之後 zeus 需要在集合當中找出乙個正整數 k ,使得 k 與 s 的異或結果最大,輸出k(共有t組樣例,(t < 10),n,m(<1=n,m<=100000))

分析

將每個數插入到線段樹後,對於每個s貪心的在字典樹上走走即可

#include#define ll long long

using

namespace

std;

const

int maxn = 1e5+10

;int

tot;

ll o;

int nt[32*maxn][2

];int cnt[32*maxn];

inta[maxn];

intn;

intnewnode()

void insert(int

rt, ll k)

else

}}ll query(

intrt, ll k)

else

}else

else}}

returno;}

intmain()

printf(

"case #%d:\n

", pp++);

while(m--)

}return0;

}

view code

**不明

題意

給n個數,從中取兩個數,問xor的最大值(1<=1e5)

分析

將n個數插入到字典樹中,貪心的在上面走走即可

經典演算法之字典樹

簡介 字典樹 字首樹 是字串匹配問題的常用演算法之一,是kmp演算法的公升級版本,kmp解決單一字串匹配問題效果極佳,但是對於多個字串匹配的問題,需要使用字典樹效果才顯著。include using namespace std const int num 26 typedef struct trie...

hdu 2846 經典字典樹

思路 因為字典樹只能讀取字首有多少個相同的,對於求子串可以將字串分成 多個字串看成單獨的字串 進行建 字典樹,但要注意這兩個字串 abab,ab 他們的字串都有 ab a 所以在建樹時 判斷是否同乙個字串 不同就加 1 include include include include using na...

主席樹 字典序 牛客 經典字串問題

經典字串問題 給定nn n個數,有q qq次詢問,詢問 l,r l,r l,r 的第k kk大,如果沒有答案輸出 1 1 1需要把每乙個數當作字串。注意字典序的判定 主題題目要求的是第k小 把輸入按字典序排序,記錄ran krank rank 然後直接套主席樹靜態求區間第k kk小。include ...