比赛 noi2000练习1 评测结果 AAAAAAAAAA
题目名称 单词查找树 最终得分 100
用户昵称 WHZ0325 运行时间 0.022 s
代码语言 C++ 内存使用 3.06 MiB
提交时间 2018-01-22 19:27:36
显示代码纯文本
#include <cstdio>
#include <cstring>
struct Trie {
	int ch[100000][26];
	int ans;
	Trie() {
		ans=0;
		memset(ch[ans],0,sizeof(ch[ans]));
		ans++;
	}
	int idx(char c) {return c-'A';}
	void insert(char s[]) {
		int len=strlen(s);
		int u=0;
		for(int i=0;i<len;++i) {
			int c=idx(s[i]);
			if(!ch[u][c]) {
				ch[u][c]=ans++;
			}
			u=ch[u][c];
		}
	}
	int solve() {return ans;}
} trie;
int main() {
	freopen("trie.in","r",stdin);
	freopen("trie.out","w",stdout);
	char s[100];
	while(scanf("%s",s)==1) {
		trie.insert(s);
	}
	printf("%d\n",trie.solve());
	fclose(stdin);
	fclose(stdout);
	return 0;
}