首页 > 代码库 > hdu2072 单词数 字典树
hdu2072 单词数 字典树
字典树裸题
1 #include<stdio.h>
2 #include<string.h>
3 int next[5000][26];
4 bool is_e[5000];
5 int cnt;
6 int ans;
7
8 void Insert(char *word,int s1){
9 int root=0;
10 for(int i=0;i<s1;i++){
11 if(next[root][word[i]-‘a‘]<0){
12 next[root][word[i]-‘a‘]=++cnt;
13 memset(next[cnt],-1,sizeof(next[cnt]));
14 }
15 root=next[root][word[i]-‘a‘];
16 }
17 if(is_e[root]!=true&&root!=0){
18 ans++;
19 is_e[root]=true;
20 }
21 }
22
23 int main(){
24 char word[500];
25 while(1){
26
27 int s1=0;
28 ans=0;
29 cnt=0;
30 memset(is_e,false,sizeof(is_e));
31 memset(next[0],-1,sizeof(next[0]));
32 gets(word);
33 if(word[0]==‘#‘)return 0;
34 int l=strlen(word);
35 char *p=word;
36 for(int i=0;i<l;i++){
37 if(word[i]!=‘ ‘){
38 s1++;
39 }
40 else{
41 Insert(p,s1);
42 s1=0;
43 p=(word+i+1);
44 }
45 }
46 Insert(p,s1);
47 printf("%d\n",ans);
48 }
49 }
hdu2072 单词数 字典树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。