分析:這個題和spoj的d_query是乙個題,那個是求一段區間裡有多少個不同的數字,這裡是統計有多少個不同的字首
用字典樹進行判重,(和查詢不同的數字一樣)對於每個不同的字首,只保留它最後一次出現的序號
#include #includeview code#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;
}
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...