思路:因為字典樹只能讀取字首有多少個相同的, 對於求子串可以將字串分成
多個字串看成單獨的字串 進行建 字典樹,但要注意這兩個字串 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 然後插入的時候順便統計一下個數,這...