比赛 |
字符串练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
词链 |
最终得分 |
100 |
用户昵称 |
玉带林中挂 |
运行时间 |
0.191 s |
代码语言 |
C++ |
内存使用 |
51.78 MiB |
提交时间 |
2017-07-24 22:53:42 |
显示代码纯文本
#include<cstdio>
#include<cstring>
using namespace std;
int tot;
struct node
{
int next[26];
int f;
node (){memset(next,-1,sizeof(next));f=-1;}
}T[10000*50];
char str[110];
int ans;
void insert()
{
int root=0; int t=0;
for(int i=0;str[i];i++)
{
if(T[root].next[ str[i]-'a' ]==-1) T[root].next[ str[i]-'a' ]=tot++;
root=T[root].next[ str[i]-'a' ];
if(T[root].f!=-1)
{
t++;
}
}
T[root].f=t+1;
if(t+1>ans) ans=t+1;
}
int main()
{
freopen("link.in","r",stdin);
freopen("link.out","w",stdout);
int n; tot=1; ans=1;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",str);
insert();
}
printf("%d\n",ans);
return 0;
}