POJ 1451 T9 (字典树好题)】的更多相关文章

题目链接:http://bailian.openjudge.cn/practice/1451/ 总时间限制: 1000ms 内存限制: 65536kB 描述 Background A while ago it was quite cumbersome to create a message for the Short Message Service (SMS) on a mobile phone. This was because you only have nine keys and the…
https://vjudge.net/problem/HDU-1251 标准的字典树模板题: 也注意一下输入方法: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; struct node { int num; node *next[maxn]; }; //字典树 class Tree{ public: node *head; //构造函数 Tree() { head…
题目链接:传送门 描述给定 $N$ 个字符串 $S_1,S_2,\cdots,S_N$,接下来进行 $M$ 次询问,每次询问给定一个字符串 $T$,求 $S_1 \sim S_N$ 中有多少个字符串是 $T$ 的前缀.输入字符串的总长度不超过 $10^6$,仅包含小写字母. 输入格式第一行两个整数 $N,M$.接下来 $N$ 行每行一个字符串 $S_i$.接下来 $M$ 行每行一个字符串表示询问. 输出格式对于每个询问,输出一个整数表示答案 样例输入3 2abbcabcabcefg 样例输出20…
http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给出一些单词,然后有多次询问,每次输出以该单词为前缀的单词的数量. 思路: 字典树入门题. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; ; struct Trie { ]; int cnt; //前缀数量 int ends; //单词数量,在本题中其实并没有用到…
题意:      给你一些字符串,然后问你他们中有没有一个串是另一个串的前缀. 思路:       字典树水题,(这种水题如果数据不大(这个题目不知道大不大,题目没说估计不大),hash下也行,把每个串拆成len个串,然后map容器记录下就行了,不想存也 行,最后迭代一下也能出来),回来说字典树,就是最简单的前缀判断应用,我写的结构体里面有3个量,next[], v(出现次数) ,mk (是不是某个字符串的最后一位), 在查找的时候如果我们碰到了已经mk的,那么就直接发现前缀了,某个字符串是当前…
背景:为了方便九宫格手机用户发短信,希望在用户按键时,根据提供的字典(给出字符串和频数),给出各个阶段最有可能要打的单词. 题意: 首先给出的是字典,每个单词有一个出现频率.然后给出的是询问,每个询问有一个数字字符串,代表在手机上按了哪些键,以1结束.问按键的过程中最可能出现的单词分别是哪些. 思路:搞了很久.......一开始总想着以字母为各结点如何建树,询问......还是太年轻了. 以手机8个键作为字典树各节点,每个结点映射3-4对应的字母.每个结点存频率最高的串,询问的时候也可以方便的直…
/******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 算法: 字典树 提示: 这题压要用c++提交,G++会超内存 *******************************************************/ #include<cstdio> #include<cstr…
T9 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3083   Accepted: 1101 Description Background A while ago it was quite cumbersome to create a message for the Short Message Service (SMS) on a mobile phone. This was because you only have…
题意:中文题,统计以某字符串作为前缀的字符串个数 刚学字典树,理解起来十分简单,就是维护一个多叉树,这里用的是链表版本,后面就用的是数组版本了,个人更喜欢数组版本,这里的链表版本就因为 莫名其妙的错误 C++能过而g++就会MLE 可能是两者管理内存的方式不一样吧 #include<iostream> #include<cstring> #include<cstdio> using namespace std; ; struct Trie{ Trie*next[maxn…
统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 15526    Accepted Submission(s): 6643 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前…