nyoj290 动物统计加强版

 1 #include<cstring>
 2 #include<cstdio>
 3 #include<iostream>
 4 using namespace std;
 5 struct node{
 6     node *next[26];
 7     int count;
 8     node(){      //构造函数,初始化数据 
 9         memset(next,0,sizeof(next));
10         count=0;
11     }
12 };
13 int maxi;   //用来存放最大出现次数 
14 char maxs[11];//存放出现次数最多的字符串 
15 node *root=new node();
16 void insert(char *s)//插入新的字符串 
17 {
18     node *p=root;
19     int i,k;
20     for(i=0;s[i];++i){
21         k=s[i]-'a';
22         if(p->next[k]==NULL) p->next[k]=new node();//不存在此节点则创建 
23         p=p->next[k];   //移向下一结点 
24     }
25     p->count++;//此字符串的出现的次数加一 
26     if(p->count>maxi){//更新maxi和maxs 
27         maxi=p->count;
28         strcpy(maxs,s);
29     }
30 }
31 int main()
32 {
33     int n;
34     char s[11];
35     scanf("%d",&n);
36     while(n--){
37         scanf("%s",s);
38         insert(s);
39     }
40     printf("%s %d\n",maxs,maxi);
41     return 0;
42 }

字典树没什么好说的!!!但时间依然这么大,郁闷!

时间:1544 内存:56408 长度:624

posted on 2012-08-08 21:10  小花熊  阅读(237)  评论(0编辑  收藏  举报

导航