比赛 字符串练习 评测结果 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;  
}