hdoj-1251统计难题(字典树)
来源:互联网 发布:linux usr local 编辑:程序博客网 时间:2024/06/05 20:31
统计难题
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 46370 Accepted Submission(s): 16476
Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
bananabandbeeabsoluteacmbabbandabc
Sample Output
2310
题目链接
字典树模板题,但这题也可以用map做,因为只找前缀,所以用map将所有的前缀存起来就好了,下面是两个代码。
#include <stdio.h>#include <string.h>#define MAX 500000using namespace std;int s[MAX][26],count[MAX],tot;void Init(){ memset(s[0],0,sizeof(s[0])); memset(count,0,sizeof(count)); tot=1;}void Insert(char *c){ int i,j,u,n; n=strlen(c); j=0; for(i=0;i<n;i++) { u=c[i]-'a'; if(!s[j][u]) { memset(s[tot],0,sizeof(s[tot])); count[tot]=0; s[j][u]=tot++; } j=s[j][u]; count[j]++; }}int Query(char *c){ int i,j,u,n; n=strlen(c); j=0; if(n>20) return 0; for(i=0;i<n;i++) { u=c[i]-'a'; if(!s[j][u]) return 0; if(i+1==n) break; j=s[j][u]; } return count[s[j][u]];}int main(){ int ans; char c[100]; Init(); while(gets(c),c[0]!='\0') { Insert(c); } while(gets(c)) { ans=Query(c); printf("%d\n",ans); } return 0;}
#include<iostream>#include<cstring>#include<map>#include<cstdio>using namespace std;int main(){ map<string,int> m;string str;char a;while(1){scanf("%c",&a);if(a=='\n'){scanf("%c",&a);str.clear();}if(a=='\n') break;str=str+a;m[str]++;}while(cin>>str){cout<<m[str]<<endl;}return 0;}
阅读全文
1 0
- HDOJ 1251 统计难题(字典树)
- hdoj--1251--统计难题(字典树)
- HDOJ 1251 统计难题 (字典树)
- HDOJ 1251 统计难题(字典树)
- hdoj 1251 统计难题(字典树)
- hdoj-1251统计难题(字典树)
- HDOJ 1251 统计难题 字典树
- [HDOJ 1251] 统计难题 [字典树]
- HDOJ 1251 统计难题 字典树
- hdoj 1251 统计难题 【字典树】
- HDOJ 统计难题 1251 【字典树】
- hdoj-1251-统计难题(字典树)
- HDOJ 1251-统计难题【模板:字典树】
- HDOJ 1215 统计难题(字典树)
- (字典树)统计难题--HDOJ
- HDOJ 题目1251统计难题(字典树,模板)
- hdoj 1251 统计难题(经典字典树)
- hdoj 统计难题 1251 (字典树模板)
- M
- 磁盘管理开源工具TestDisk
- [Spring]Bean相关问题
- c语言经典例题3
- Hadoop生态系统
- hdoj-1251统计难题(字典树)
- 爬取猫眼电影网经典电影TOP100信息Markdown效果展示
- 使用DOM方法在文档中检索或添加信息的方法以及example代码
- 解决Linux Terminal在被拖动时产生Ctrl+C的问题
- LeetCode#98. Validate Binary Search Tree
- github开源项目地址
- HTML 里面的图片怎么移动位置?
- Softlink & Hardlink
- 字符串查找算法BF和KMP