hdu 2846 經典字典樹

2021-06-18 06:35:23 字數 528 閱讀 9579

思路:因為字典樹只能讀取字首有多少個相同的, 對於求子串可以將字串分成

多個字串看成單獨的字串 進行建 字典樹,但要注意這兩個字串 abab, ab

他們的字串都有 ab a 所以在建樹時 判斷是否同乙個字串 不同就加 1 ;

#include #include #include #include using namespace std;

struct trie

}root;

void createtrie(char *str, int x)

p = p->next[id];

if(p->tot != x) p->num++;

p->tot = x;

}}int findtrie(char *str)

return p->num;

}int main()

cin >> n;

for(int i = 0; i < n; i++)

}return 0;

}

hdu2846(字典樹好題)

字典樹的好題 題意 給你n個串,然後又q次詢問,輸出n個串中包含改串的個數 思路 這題非常考驗個人的分析能力,最初的想法是用ac自動機或者是字尾陣列做,但有感覺不可行,最後看了題解才知道要用字典樹,對n個串的子串的字首建立字典樹,注意 同乙個串可能有相同的子串,所以要有個flag標記。首先要注意的是...

hdu 2846 字典樹《怪我思維不夠跳躍》

這題 一眼望去 又tm想用map了。想起自己已經學過 字典樹了 這題 需要拆分出給的字串的每個子串 還是蠻麻煩的 然後就是再去匹配查詢了 其實 這題 我覺得難點是再有沒有想到將字串拆分成子串進行create 想到了這點 還有一點 就是你怎麼判斷重一性 可能記錯了 或者說 假如有個字串aabb那麼你可...

HDOJ2846解題報告 字典樹

題目概述 給你p個單詞以及q個詢問,對於每個詢問,回答乙個整數,表示詢問的字串是多少個所給的單詞的子串。大致思路 很容易看出是乙個字典樹的題,因為只要是子串都滿足題意,所以在插入的時候需要多插入一些,例如 對於單詞abcd,則需要插入字串abcd,bcd,cd,d 然後插入的時候順便統計一下個數,這...