hdu1251——統計難題
大致思路:我們可以讓字典樹的節點記錄每乙個節點的出現的次數,然後在我們查詢的過程中直接查詢最後乙個字元對應的節點的次數即可。
#include #include #include #include using namespace std;
const int size = 2e6 + 5;
int trie[size][30];
char s[15],t[15];
int cnt[size],tot;
void insert(char *str)
}int search(char *str)
return cnt[p];
}int main(int argc, char const *ar**)
while(~scanf("%s",t)) printf("%d\n", search(t));
return 0;
}
如果這道題理解了我們可以再看看這道題的變式 字首統計。
做法和上面一道題類似,這道題不一樣的是:在字典樹的節點中用cnt記錄,表示該節點是多少個字串的末尾節點,在下面的查詢過程中累加途徑的每個節點的cnt就是最後的答案。
#include #include #include #include using namespace std;
const int size = 2e6 + 5;
int trie[size][30];
char s[size],ss[size];
int cnt[size],tot;
void insert(char *str)
cnt[p]++;
}int search(char *str)
return sum;
}int main(int argc, char const *ar**)
while(t--)
return 0;
}
HDU 1251統計難題(字典樹)
經典的字典樹題目。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。ac code ...
HDU1251統計難題 字典樹
題目 problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的...
hdu 1251 統計難題 字典樹
problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...