hdu-1251-统计难题(字典树)
来源:互联网 发布:linux怎样浏览网页 编辑:程序博客网 时间:2024/05/17 00:48
Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc
Sample Output
2
3
1
0
字典树基础题,字典树详情
代码:
/* Name: hdu-1251-统计难题 Copyright: __X Author: long_long_ago Date: 18/12/15 09:19 Description: http://acm.hdu.edu.cn/showproblem.php?pid=1251*/#include <iostream>#include <iomanip>#include <cstdio>#include <cstdlib>#include <string>#include <cstring>#include <cmath>#include <algorithm>#define N 26using namespace std;struct Trie{ Trie *next[N]; int cnt;};Trie *root;void CreateTrie(string str){ int len = str.length(), i, t; Trie *p = root, *tmp; for (i = 0; i < len; i++) { t = str[i] - 'a'; if (p->next[t]) { p->next[t]->cnt++; } else { tmp = (Trie*)malloc(sizeof(Trie)); for (int j = 0; j < N; j++) { tmp->next[j] = NULL; } p->next[t] = tmp; tmp->cnt = 1; } p = p->next[t]; }}int FindTrie(string str){ int len = str.length(), i, t; Trie *tmp = root; for (i = 0; i < len; i++) { t = str[i] - 'a'; tmp = tmp->next[t]; if (!tmp) return 0; } return tmp->cnt;}int main(){#ifndef ONLINE_JUDGE freopen("1.txt", "r", stdin);#endif string str; int i; root = (Trie*)malloc(sizeof(Trie)); for (i = 0; i < N; i++) { root->next[i] = NULL; } while(getline(cin, str)) { if (!str.size()) break; CreateTrie(str); } while(cin >> str) { cout << FindTrie(str) << endl; } 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 统计难题 (字典树)
- windows7系统C盘AppData可以删除吗,对电脑操作系统有影响吗?对操作软件有影响吗?
- 关于有偿提供拼图响应式后台的通知
- iOS - UI: 动画汇总二(学习日记)
- StrictMode使用详解,strictmode
- 互联网产品从设计到运营
- hdu-1251-统计难题(字典树)
- 畅通工程续 hdu 1874
- iPad UIPopoverController弹出窗口的位置和坐标
- input标签name与value区别
- 大数据如何帮助移动端企业进行决策
- NSArray与NSMutableArray 数组与可变数组的创建和遍历
- 安装 GitLab8.x
- 理解SVM的三层境界-支持向量机通俗导论
- OS 10.11 cocoaPod 使用,详细教程