HDU-1251 统计难题(字典树)
来源:互联网 发布:union软件安卓版贴吧 编辑:程序博客网 时间:2024/05/17 02:57
统计难题
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 28454 Accepted Submission(s): 11280
Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
bananabandbeeabsoluteacmbabbandabc
Sample Output
2310
Author
Ignatius.L
#include <algorithm>#include <iostream>#include <sstream>#include <cstring>#include <cstdlib>#include <string>#include <vector>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <map>#include <set>using namespace std;#define INF 0x3f3f3f3const int N=50005;const int mod=1e9+7;typedef struct Trie{ Trie *next[26]; int v;}Trie;Trie *root=(Trie *)malloc(sizeof(Trie));void insert(char *str){ int len=strlen(str); Trie *p = root,*q; for (int i=0; i<len; i++) { int id=str[i]-'a'; if (p->next[id]==NULL) { q=(Trie *)malloc(sizeof(Trie)); q->v=0; for (int j=0; j<26; j++) q->next[j]=NULL; p->next[id]=q; } p=p->next[id]; p->v++; }}int find(char *str){ int len=strlen(str); Trie *p = root; for (int i=0; i<len; i++) { int id=str[i]-'a'; p=p->next[id]; if (p==NULL) return 0; } return p->v;}void del(Trie *root){ for (int i=0; i<26; i++) { if (root->next[i]!=NULL) { del(root->next[i]); } } free(root);}int main() { int count=0; char str[15]; for (int i=0; i<26; i++) { root->next[i]=NULL; } root->v=0; while (gets(str)&&strlen(str)!=0) { insert(str); } while (scanf("%s",str)!=EOF) { cout<<find(str)<<endl; } del(root); return 0;}
0 0
- HDU 1251统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题 (字典树)
- hdu 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU-#1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- HDU - 1251 - 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU 1251统计难题 (字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU-1251 统计难题(字典树)
- LeetCode 202 Happy number
- ImageContainer重复添加,以及Map<String,Object>遍历
- ArcGIS调用DataInteroperabilityTools导出数据
- bzoj1015 星球大战starwar
- 在tomcat7中启用HTTPS的详细配置
- HDU-1251 统计难题(字典树)
- 图像形态学处理(2)
- 【Data Algorithms_Recipes for Scaling up with Hadoop and Spark】Chapter5 Order Inversion Pattern
- memcached 使用汇总
- lightoj 1220 - Mysterious Bacteria 【数学】
- 学历是铜牌,能力是银牌,人脉是金牌,思维是王牌
- 浅谈程序员职业规划
- ZOJ 2853 Evolution【矩阵快速幂】
- Bootstrap 输入框组