记录编号 530622 评测结果 AAAAAAAAAA
题目名称 词链 最终得分 100
用户昵称 GravatarHale 是否通过 通过
代码语言 C++ 运行时间 0.112 s
提交时间 2019-04-27 21:58:57 内存使用 96.83 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int m,n,k,p,size,ans;
struct node
{
	int ch[26];
} t[N<<3];
string s[N];
int end[N<<3];
void insert(string ss)
{
	int len=ss.length(),u=0;
	for (int i=0;i<len;i++)
	{
		int c=ss[i]-'a';
		if (!t[u].ch[c]) t[u].ch[c]=++size;
		u=t[u].ch[c];
	}
	end[u]++;
}
void query(string ss)
{
	int len=ss.length(),u=0,sum=0;
	for (int i=0;i<len;i++)
	{
		int c=ss[i]-'a';
		u=t[u].ch[c];if (end[u]) sum+=end[u];
	}
	ans=max(ans,sum);
}
int main()
{
	freopen("link.in","r",stdin);
	freopen("link.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;i++) cin>>s[i];
	for (int i=1;i<=n;i++)
	insert(s[i]);
	for (int i=1;i<=n;i++) query(s[i]);
	printf("%d",ans);
	return 0;
}