博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ACM] hdu 1251 统计难题 (字典树)
阅读量:6158 次
发布时间:2019-06-21

本文共 1405 字,大约阅读时间需要 4 分钟。

统计难题

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


Problem Description
Ignatius近期遇到一个难题,老师交给他非常多单词(仅仅有小写字母组成,不会有反复的单词出现),如今老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
 

Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每一个提问都是一个字符串.
注意:本题仅仅有一组測试数据,处理到文件结束.
 

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

Sample Input
 
banana band bee absolute acm ba b band abc
 

Sample Output
 
2 3 1 0
 

Author
Ignatius.L

趁热打铁。熟练一下字典树的操作。

代码:

#include 
#include
#include
using namespace std;struct Trie{ int cnt; Trie *next[27]; Trie() { cnt=0; for(int i=0;i<27;i++) next[i]=NULL; }}root;void create(char *s){ Trie *p=&root; int len=strlen(s); for(int i=0;i
next[id]==NULL) { p->next[id]=new Trie; p->next[id]->cnt++; } else p->next[id]->cnt++; p=p->next[id]; }}int find(char *s){ Trie *p=&root; int len=strlen(s); for(int i=0;i
next[id]==NULL) return 0; p=p->next[id]; } return p->cnt;}int main(){ char s[11]; while(gets(s)&&s[0]!='\0') create(s); while(cin>>s) cout<
<

转载于:https://www.cnblogs.com/gavanwanggw/p/7162252.html

你可能感兴趣的文章
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>
MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
查看>>
生日小助手源码运行的步骤
查看>>
Configuration python CGI in XAMPP in win-7
查看>>
bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP
查看>>
CF 888E Maximum Subsequence——折半搜索
查看>>
欧几里德算法(辗转相除法)
查看>>
面试题1-----SVM和LR的异同
查看>>
MFC控件的SubclassDlgItem
查看>>
如何避免历史回退到登录页面
查看>>
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
查看>>
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>