HDU5790 Prefix 字典樹 主席樹

2022-07-22 13:03:14 字數 816 閱讀 3595

分析:這個題和spoj的d_query是乙個題,那個是求一段區間裡有多少個不同的數字,這裡是統計有多少個不同的字首

用字典樹進行判重,(和查詢不同的數字一樣)對於每個不同的字首,只保留它最後一次出現的序號

#include #include 

#include

#include

using

namespace

std;

typedef

long

long

ll;const

int n = 1e5+5

;const

int mod = 1e9+7

;int p[n][26

],cnt,last[n],n,q;

char

s[n];

struct

nodeo[

40*n];

introot[n],sz;

void add(int &rt,int l,int r,int pos,int

t)int query(int rt,int l,int r,int x,int

y)int

newnode()

void insert(int

cur)

else

} root[cur]=tr;

} int

main()

int z=0

,l,r;

scanf("%d

",&q);

while(q--)

} return0;

}

view code

hdu 1880 魔咒字典

題意 略 思路 一開始就是想到了正確的思路,但是 寫炸了,死活過不了。這題嘛,就是建議乙個魔咒與咒語的雙向對映。首先用字串hash將魔咒與咒語的hash值給算出來,之後用兩個map儲存魔咒的hash與魔咒下標,咒語的hash與咒語的下標。hash用的是優秀的bkdr演算法,好寫而且不容易衝突。最後查...

hdu 1880 魔咒字典

題意 略 思路 一開始就是想到了正確的思路,但是 寫炸了,死活過不了。這題嘛,就是建議乙個魔咒與咒語的雙向對映。首先用字串hash將魔咒與咒語的hash值給算出來,之後用兩個map儲存魔咒的hash與魔咒下標,咒語的hash與咒語的下標。hash用的是優秀的bkdr演算法,好寫而且不容易衝突。最後查...

hdu 2846 經典字典樹

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