统计难题

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 52353    Accepted Submission(s): 18339

Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

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

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

问题链接:HDU1251 统计难题

问题描述

  输入若干小写字母组成的字符串集合,然后是一个空行;再输入若干字符串,计算这些字符串作为前缀出现的次数。

问题分析

这个问题是字典树的裸题。

需要注意空间的大小!

程序说明:(略)

参考链接:(略)

题记:(略)

AC的C++语言程序如下:

/* HDU1251 统计难题  */#include <iostream>
#include <stdio.h>
#include <string.h>using namespace std;const int N = 100000;
const int LEN = 10;
const int SIZE = 26;
const char SCHAR = 'a';struct Trie {int acnt;   // access countint childs[SIZE];void init(){acnt = 1;memset(childs, 0, sizeof(childs));}
} trie[N * LEN];
int ncnt;   // Trie Node count
char s[LEN + 1]; // Inputvoid insert(char s[])
{int p = 0;for(int i = 0; s[i]; i++) {int k = s[i] - SCHAR;int child = trie[p].childs[k];if(child) {trie[child].acnt++;p = child;} else {trie[++ncnt].init();trie[p].childs[k] = ncnt;p = ncnt;}}
}int query(char s[])
{int p = 0;for (int i = 0; s[i]; i++) {int k = s[i] - SCHAR;int child = trie[p].childs[k];if (child == 0)return 0;elsep = child;}return trie[p].acnt;
}int main()
{while(gets(s)) {if(s[0] == NULL)break;insert(s);}while(gets(s))printf("%d\n", query(s));return 0;
}

HDU1251 统计难题【字典树】相关推荐

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

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

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

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

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

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

  4. HDU1251 统计难题 trie树 简单

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意: 找前缀数量 裸模板 1 #include<cstdio> 2 #include< ...

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

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

  6. HDU1251 统计难题 【trie树】

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

  7. hdu1251 hash或者字典树

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

  8. hdu1251(统计难题)

    这题就是一个字典树的模板题 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Othe ...

  9. 南阳oj 题目290 动物统计加强版 字典树

    动物统计加强版 时间限制:3000 ms | 内存限制:150000 KB 难度:4 描述 在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单.科学家 ...

最新文章

  1. 零基础入门NLP - 新闻文本分类
  2. 什么东西都要用一句话总结出来:这是最重要的
  3. 心理医生给女人的忠告
  4. REVERSE-PRACTICE-BUUCTF-1
  5. Python 列表推导式 - Python零基础入门教程
  6. java删除某些段落word_Java 批量删除Word中的空白段落示例代码
  7. dede无法在这个位置找到head.html2,织梦搜索:DedeCMS 提示信息
  8. Windows:打开MSDTC,恢复Windows任务栏,查看windows日志,打开远程桌面,打开Services,资源监控...
  9. Reflect Refract (以水渲染为例)
  10. Spring任务调度实战之Quartz Simple Trigger
  11. 线性代数(第六版) 同济大学数学系 编 高等教育出版社 课后习题答案
  12. 10.1寸大屏安卓通用车载导航
  13. linux slab 内存 清理,linux系统slab内存占用
  14. Fabric实战(12)Fabric CA-账号服务器
  15. Linux原子操作与锁实现
  16. 汉诺塔问题模拟实现代码
  17. 蛋蛋弹车2-具有功能安全EPS系统设计(工具篇2)
  18. 查看文章 mysql:表注释和字段注释
  19. java试题库管理系统源代码_Java试题库管理源代码
  20. 知识点滴 - 无线电通信(P25)的物理信道和逻辑信道

热门文章

  1. CSDN2013年度博客之星评选
  2. php jquery 实例教程,php jquery 多文件上传简单实例
  3. 企业级及电子商务常见缩写
  4. pythonic风格_【Python】性能优化之Pythonic风格化代码
  5. android系统耗电如何关闭,安卓手机建议关闭这4大功能,耗电快的罪魁祸首?不用一天三充了...
  6. Ecology 建模表单 数据库字段与页面字段对应关系显示
  7. 完美解决github访问速度慢
  8. 学习Java 第 4天 流程控制语句 one大白(●—●)
  9. import关键字的使用
  10. android开发入门配置,Android开发入门——Andoird Studio的安装与配置