HDU1251统计难题 trie树
来源:互联网 发布:阿里云数据同步 编辑:程序博客网 时间:2024/06/12 19:57
Description
Ignatius最近遇到一个难题, 老师交给他很多单词( 只有小写字母组成, 不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量( 单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表, 每行一个单词, 单词的长度不超过10, 它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问, 每行一个提问, 每个提问都是一个字符串.
注意: 本题只有一组测试数据, 处理到文件结束.
注意: 本题只有一组测试数据, 处理到文件结束.
Output
对于每个提问, 给出以该字符串为前缀的单词的数量.
题意就是。。。喵的中文题目好吧
trie树的模版题,建一个保存指针的数组。每次存储访问节点次数即可
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#include<vector>#include<string>using namespace std;typedef long long ll;#define N 505const int inf=0x3f3f3f3f;struct node{int num;node* next[26];node(){num=0;memset(next,NULL,sizeof(next));}};node *root=new node();node *pos;void build(string s){pos=root;for(int i=0;i<s.size();i++){int index=s[i]-'a';if(pos->next[index]==NULL){pos->next[index]= new node();pos=pos->next[index];pos->num++;}else{pos=pos->next[index];pos->num++;}}}int query(string s){pos=root;for(int i=0;i<s.size();i++){int index=s[i]-'a';if(pos->next[index]==NULL) return 0;pos=pos->next[index];}return pos->num;}int main(){int T;string s;while(getline(cin,s)&&s[0]!='\0'){//printf("fuck\n");build(s);}while(cin>>s){printf("%d\n",query(s));}return 0;}
0 0
- HDU1251 统计难题 【trie树】
- HDU1251统计难题 trie树
- HDU1251 统计难题(Trie树)
- hdu1251 统计难题 (Trie)
- hdu1251 统计难题 trie
- hdu1251 统计难题 数据结构之Trie树
- HDU1251(统计难题)---Trie树简单应用
- HDU1251 统计难题(Trie树)
- hdu1251 统计难题(Trie树入门题)
- hdu1251-> 统计难题(Trie树入门题)
- HDU1251 统计难题(trie树[重做])
- HDU1251 统计难题 【Trie 树入门】
- HDU1251 统计难题(Trie)
- HDU1251统计难题---Trie Tree
- [复习][HDU1251]字典树(trie树)统计难题
- hdu1251 统计难题 字典树
- 【字典树】 hdu1251 统计难题
- hdu1251 统计难题(字典树)
- 从头到尾打印链表
- 仿乐透购彩app(7)
- jQuery实现级联菜单<数据动态加载>
- RDD-Transformation——groupByKey
- Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version
- HDU1251统计难题 trie树
- [php]include()和require()区别【学习笔记】
- 287. Find the Duplicate Number
- GDB的安装以及使用入门
- invalidate()和postInvalidate() 的区别
- 深入理解Java的接口和抽象类
- debian彻底卸载软件
- IO
- ORACLE数据库---多表链接查询