NYOJ 290 动物统计加强版 (字典树)
来源:互联网 发布:单片机最小系统图片 编辑:程序博客网 时间:2024/06/05 04:41
动物统计加强版
时间限制:3000 ms | 内存限制:150000 KB
难度:4
- 描述
- 在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙。
- 输入
- 第一行输入动物名字的数量N(1<= N <= 4000000),接下来的N行输入N个字符串表示动物的名字(字符串的长度不超过10,字符串全为小写字母,并且只有一组测试数据)。
- 输出
- 输出这些动物中最多的动物的名字与数量,并用空格隔开(数据保证最多的动物不会出现两种以上)。
- 样例输入
10boarpigsheepgazellesheepsheepalpacaalpacamarmotmole
- 样例输出
sheep 3
思路:在记录单词的最后为num加值,记录单词出现的次数,然后ans取最大值,sa数组存储目标字符串
ac代码:
#include<stdio.h>#include<string.h>#include<math.h>#include<stack>#include<iostream>#include<algorithm>#define fab(a) (a)>0?(a):(-a)#define LL long long#define MAXN 10010#define mem(x) memset(x,0,sizeof(x))#define INF 0xfffffff using namespace std;struct s{int num;s *next[26];};s *root;int ans=0;char sa[12];void create(char *str){int len=strlen(str);s *p=root,*q;for(int i=0;i<len;i++){int id=str[i]-'a';if(p->next[id]==NULL){q=(s *)malloc(sizeof(s));for(int j=0;j<26;j++)q->next[j]=NULL;q->num=0;p->next[id]=q;p=p->next[id];}else{//if(i==len-1)p=p->next[id];}}if(ans<++p->num){strcpy(sa,str);ans=p->num;}}void begin(){for(int i=0;i<26;i++)root->next[i]=NULL,root->num=0;}void freetree(s *t){if(t==NULL)return;for(int i=0;i<26;i++){if(t->next[i]!=NULL)freetree(t->next[i]);}free(t);return;}int main(){int t,i,n;char ss[12];int bz=0;root=(s *)malloc(sizeof(s));begin();scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",ss);create(ss);}printf("%s %d\n",sa,ans);freetree(root);return 0;}
0 0
- NYOJ 290 动物统计加强版(字典树)
- nyoj 290 动物统计加强版 字典树
- NYOJ--290--动物统计加强版(字典树简单运用)
- NYOJ 题目290 动物统计加强版(字典树)
- NYOJ 题目290 动物统计加强版(字典树)
- NYOJ 290 动物统计加强版 (字典树)
- nyoj 290 动物统计加强版 <字典树>
- NYOJ 290 动物统计加强版 (字典树)
- 字典树:动物统计加强版 (nyoj)
- NYOJ 动物统计加强版(字典树经典例子)
- nyoj 动物统计加强版 290 (字典树) 好题
- NYOJ 290 动物统计加强版(字典树模板题)
- NYOJ 290 动物统计加强版
- Nyoj-290动物统计加强版
- NYOJ 题目290 动物统计加强版
- NYOJ-290-动物统计加强版
- nyoj 290 动物统计加强版
- nyoj--290--动物统计加强版
- Javascript模块化编程(一):模块的写法
- 经典面试题之复杂链表复制的简单实现
- 下载安装开发者版本LeapMotion驱动及SDK
- C++primer plus第六版课后编程练习答案3.4
- C语言实现链表之双向链表(六)删除头结点
- NYOJ 290 动物统计加强版 (字典树)
- QT Design Form 积累
- Fragment你应该知道的一切
- Javascript模块化编程(二):AMD规范
- 数据链路层—了解数据链路和帧
- ViewController Classes in UIKit
- 华为oj 字符串匹配
- Android 中一个工程引用另一个工程
- android studio 获取 sha1,md5 for mac