字典树模板题,每次更新修改节点个数即可

#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
using namespace std;
char s[10010];
int k[100010][30],ans,cnt;

int main()
{
    while(scanf("%s",s+1)!=EOF)
    {
        int dep=0;
        int n=strlen(s+1);
        int pos=0;
        for (int i=1;i<=n;i++)
        {
            int p=s[i]-'A';
            dep++;
            if (k[pos][p]==0)
            {
                k[pos][p]=++cnt;
                pos=cnt;
                ans++;
            }
            else 
            {
                pos=k[pos][p];
            }
        }
    }
    printf("%d",ans+1);
    return 0;

}