题干:

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).

Input

输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

注意:本题只有一组测试数据,处理到文件结束.

Output

对于每个提问,给出以该字符串为前缀的单词的数量.

Sample Input

banana
band
bee
absolute
acmba
b
band
abc

Sample Output

2
3
1
0

解题报告:

字典树模板题,,不解释了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
int trie[1000005][26];
int num[1000005];
char str[105];
int tot;
void insert(char str[]) {int len = strlen(str),rt = 0;for(int i = 0; i<len; i++) {int cur = str[i]-'a';if(trie[rt][cur] == 0) trie[rt][cur] = ++tot;rt = trie[rt][cur];num[rt]++;}}
int ask(char str[]) {int len = strlen(str),rt=0;for(int i = 0; i<len; i++) {int cur = str[i] - 'a';if(trie[rt][cur] == 0) return 0 ;rt = trie[rt][cur];}return num[rt];}
int main()
{while(gets(str)) {if(str[0] == NULL) break;insert(str);}while(gets(str)) {printf("%d\n",ask(str));}return 0 ;}

解题报告:

题目大意:

总结:

【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)相关推荐

  1. hdu 1251 统计难题 (字典树入门题)

    1 /******************************************************* 2 题目: 统计难题 (hdu 1251) 3 链接: http://acm.hd ...

  2. HDU 1251 统计难题 字典树/STL

    统计难题 Time Limit:2000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Description Ig ...

  3. HDU - 1251 统计难题(字典树)

    题目链接:点击查看 题目大意:给出一些单词,后续再给出一些前缀,询问包含此前缀的单词一共有多少个 题目分析:这个题目的数据可能有点水,而且时间给的也很足,给了两秒,而且加上是hdu的,可以用无序map ...

  4. hdu -1251 统计难题(字典树水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 建树之后 查询即可. G++提交 ME不知道为什么,c++就对了. 1 #include <iost ...

  5. hdu 1251 统计难题(trie树入门)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  6. hdu 1251 统计难题 (Trie树)

    本题是trie树模板题,如果不用trie而用map写可以看出trie处理这类问题有明显的时间优势. 在trie树中查找一个关键字的时间和树中包含的结点数无关,而取决于组成关键字的字符数.(对比:二叉查 ...

  7. hdu 1251 统计难题(字典树)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 分析: 关于字典树的题目似乎都有一个普通适用性的模板,有时只是稍加改动来满足临时的要求,我的一 ...

  8. hdu 1251统计难题

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  9. HDU 1251 统计难题(Trie模版题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

最新文章

  1. 回归——同步更新github.io
  2. 表中查询重复的数据,如何通过sql语句查询?
  3. Majority Element(169) Majority Element II(229)
  4. PTA -- A1046 Shortest Distance
  5. 数据结构探险系列—栈篇-学习笔记
  6. SQLyog笔记-CURRENT_TIMESTAMP在SQLyog的配置
  7. 开机启动项_开机时出现“checking media presence”
  8. 防御DDoS 攻击的方法
  9. xml文件的概述与应用场景
  10. 【D3.js 学习总结】20、D3布局-捆图
  11. 《springboot学习》 十九 springboot集成mybatis-plus
  12. Paper翻译:《A Novel Convolutional Neural Network Based Model for Recognition and Classification of App》
  13. 500台机以上大型网吧设计方案(转)
  14. 张爱玲的 因为懂得,所以慈悲 如何理解
  15. 基于python的中文词频分析
  16. Java哪些是线程安全的_Java集合中那些类是线程安全的
  17. python代码过长的换行
  18. 这款TWS蓝牙耳机颜值与实用性到底怎么样?
  19. 计算机网络学习(二)物理层
  20. 视频教程-Unity3D实战入门之第三人称射击游戏(TPS)-Unity3D

热门文章

  1. [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
  2. [Leedcode][JAVA][第560题][和为K的子数组][Hashmap][数组]
  3. 福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...
  4. 和县机电工程学校工业机器人_【校企合作】学校举行工业机器人教学系统捐赠仪式...
  5. 枚举命名规范_UE4 C++基础教程 - 编码规范
  6. github基本使用教程
  7. php实战搭建博客,yii2项目实战-博客管理平台的搭建
  8. pjsua帮助手册(中文)
  9. WinCE6下的kernelIoControl使用方法
  10. 安装好了python环境后如何打开_教你如何安装Python环境