NYOJ 286 动物统计
生活随笔
收集整理的这篇文章主要介绍了
NYOJ 286 动物统计
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
动物统计
时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙。
输入样例输出
sheep 3
法三:字典树。 #include<stdio.h> #include<string.h> #include<stdlib.h> struct node {int num;struct node *next[26]; }; struct node *root; node *build() {struct node *p=(node *)malloc(sizeof(node));p->num=1;for(int i=0;i<26;i++)p->next[i]=NULL;return p; } int insert(char *s) {struct node *p=root;int len=strlen(s);for(int i=0;i<len;i++){if(p->next[s[i]-'a']==NULL)p->next[s[i]-'a']=build();p=p->next[s[i]-'a']; }return p->num++; } int main() {int n,i,max=-1,a;char str[10],s[10];root=build();scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",str);a=insert(str);if(a>max){max=a;strcpy(s,str); }}printf("%s %d\n",s,max);return 0; }
法一和法二只能在数据比较少的情况下使用,如果数据很多,则要用字典树来解,不然会超时。
总结
以上是生活随笔为你收集整理的NYOJ 286 动物统计的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java 面试题全梳理
- 下一篇: NYOJ 359 Delete i