字典树模板题,每次更新修改节点个数即可
#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;
}


京公网安备 11010502036488号