只需要进行插入操作就好了,这里只询问Trie树有多少个节点,那么只要记录新插入多少个节点就好了。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 100010; char str[N]; int tr[N][26],idx; void insert(char str[]) { int p = 0;//当前节点所在位置 for (int i = 0; str[i]; i ++ ) { int ch = str[i] - 'A'; if (!tr[p][ch]) tr[p][ch] = ++ idx;//Trie树上没有,插入一个新的节点 p = tr[p][ch];//更新p值 } } int main() { while (cin >> str) { insert(str); } cout << idx + 1<< endl;//默认根节点为0,所以加1 return 0; }