HDOJ1251 統計難題 Trie樹的基本操作

2021-07-26 06:31:53 字數 1131 閱讀 5865

題目傳送門:

trie樹是一種特殊的多叉樹結構,又稱字典樹或字首樹。特點是占用記憶體大(可以嘗試左兒子右兄弟儲存),但是可以很好的節約時間,時間複雜度為o(n),n為查詢或插入的字串長度。

題目中統計含某一字首的單詞數正是trie樹的典型應用。

typedef

struct trie trie,*ptrie;

//返回根節點指標

ptrie init(void)

return p;

}

void add(ptrie p, char *s)

p -> next[id] = q;

p = p -> next[id];

} else

}return ;

}

//樹的遍歷,返回以s為字首的單詞數目

int find(ptrie p, char *s)

else

}return p -> cnt;

}

有了這些基本操作,題目也就簡單了。

ac**

// trie

#include

#include

#include

#include

using

namespace

std;

typedef

struct trie trie,*ptrie;

ptrie init(void)

return p;

}void add(ptrie p, char *s)

p -> next[id] = q;

p = p -> next[id];

} else

}return ;

}int find(ptrie p, char *s)

else

}return p -> cnt;

}int main(int argc, char

const *argv)

while (~scanf("%s",s))

return

0;}

統計難題(hdoj1251)

ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 樣例輸入 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行代...

hdoj 1251 統計難題

problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...

hdoj 難題統計 tire

題目出處 典型的tire樹也是最簡單的,直接套模板水過 不知道為什麼用scanf老是出錯,gets就可以。ps ac includeusing namespace std define max 26 typedef struct trienode trienode 定義結點結構 trienode m...