记录编号 420599 评测结果 AAAAAAAAAA
题目名称 [NOI 2000]单词查找树 最终得分 100
用户昵称 Gravatarサイタマ 是否通过 通过
代码语言 C++ 运行时间 0.206 s
提交时间 2017-07-05 09:58:20 内存使用 49.14 MiB
显示代码纯文本
#include<fstream>
#include<string>
using namespace std;
ifstream cin("trie.in");
ofstream cout("trie.out");
class node
{public:
	char children[101];
	int h,num[101];
}tree[100001];
string s;
int l,i,k,s1,s2,an=1;
int fi(int x,int y)
{
	int o;
	s1=x;
	s2=y;
	for(o=1;o<=tree[x].h;o++)
	{
		if(tree[x].children[o]==s[y])
			fi(tree[x].num[o],y+1);
	}
	return 0;
}
int build(int x,int y)
{
	if(y<l)
	{
		tree[x].h++;
		tree[x].children[tree[x].h]=s[y];
		an++;
		tree[x].num[tree[x].h]=an;
		build(an,y+1);
	}
	return 0;
}
int main()
{
	for(i=0;i<=100000;i++)tree[i].h=0;
	while(cin>>s)
	{
		l=s.length();
		fi(1,0);
		build(s1,s2);
	}
	k=1;
	for(i=0;i<=100000;i++)
	{
		k+=tree[i].h;
	}
	cout<<k<<endl;
	cin.close();
	cout.close();
	return 0;
}