只需要进行插入操作就好了,这里只询问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;
}