题目链接:https://vjudge.net/problem/HDU-1251

题意:给定一系列字符串之后,再给定一系列前缀,对每个前缀查询以该字符串为前缀的字符串个数。

思路:

  今天开始学字典树,从入门题开始。用数组实现,count数组表示每个结点出现次数,trie[0]为根节点。插入和查询一个字符串的复杂度为O(len)。len为字符串的长度。

AC code:

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std; const int maxn=1e6+; //树的大小,尽量开大点
int trie[maxn][],num[maxn],cnt;
char str[]; void insert(char *s){
int len=strlen(s);
int u=;
for(int i=;i<len;++i){
int t=s[i]-'a';
if(!trie[u][t]){
++cnt;
memset(trie[cnt],,sizeof(trie[cnt]));
trie[u][t]=cnt;
}
u=trie[u][t];
++num[u];
}
} int query(char *s){
int len=strlen(s);
int u=;
for(int i=;i<len;++i){
int t=s[i]-'a';
if(!trie[u][t]) return ;
u=trie[u][t];
}
return num[u];
} int main(){
cnt=;
memset(trie[],,sizeof(trie[]));
memset(num,,sizeof(num));
while(gets(str),str[]!='\0')
insert(str);
while(~scanf("%s",str))
printf("%d\n",query(str));
return ;
}

(模板)hdoj1251(字典树模板题)的更多相关文章

  1. 字典树模板题(统计难题 HDU - 1251)

    https://vjudge.net/problem/HDU-1251 标准的字典树模板题: 也注意一下输入方法: #include<iostream> #include<cstdi ...

  2. CH 1601 - 前缀统计 - [字典树模板题]

    题目链接:传送门 描述给定 $N$ 个字符串 $S_1,S_2,\cdots,S_N$,接下来进行 $M$ 次询问,每次询问给定一个字符串 $T$,求 $S_1 \sim S_N$ 中有多少个字符串是 ...

  3. HDU - 1251 字典树模板题

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

  4. HDU 1251 统计难题(字典树模板题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给出一些单词,然后有多次询问,每次输出以该单词为前缀的单词的数量. 思路: 字典树入门题. #inc ...

  5. hdu1521(字典树模板)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意: 中文题诶~ 思路: 字典树模板 代码1: 动态内存, 比较好理解一点, 不过速度略慢, ...

  6. 字典树模板 HDU - 1251

    题意: 给一些单词,换行键后,查找以后输入的单词作为前缀的话们在之前出现过几次. 思路: 字典树模板----像查字典的顺序一样 #include<string> #include<s ...

  7. hdu1305 字典树水题

    题意:      给你一些字符串,然后问你他们中有没有一个串是另一个串的前缀. 思路:       字典树水题,(这种水题如果数据不大(这个题目不知道大不大,题目没说估计不大),hash下也行,把每个 ...

  8. P1184 高手之在一起(字典树模板题,hash算法, map)

    哎,唯一值得说明的是,这道题的输入有bug 先把字典树的算法模板放一下 #include<iostream> #include<cstring> using namespace ...

  9. HDU 2072 - 单词数 - [(有点小坑的)字典树模板题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 Problem Descriptionlily的好朋友xiaoou333最近很空,他想了一件没有 ...

随机推荐

  1. BFC、IFC、FFC、GFC

    FC(Formatting Context) 它是W3C CSS2.1规范中的一个概念,定义的是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用. ...

  2. [HAOI2007][BZOJ 1047]理想的正方形

    Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. Input 第一行为3个整数,分别表示a,b,n的值第二行至第 ...

  3. HDU 6194 string string string ——(2017沈阳网络赛,后缀数组)

    思路见:http://blog.csdn.net/aozil_yang/article/details/77929216. 代码如下: #include <stdio.h> #includ ...

  4. FCN笔记

    FCN.py tensorflow命令行参数 FLAGS = tf.flags.FLAGS tf.flags.DEFINE_integer("batch_size", " ...

  5. PHP如何解决网站大流量与高并发的问题(三)

    七层负载均衡的实现 基于URL等应用层信息的负载均衡 Nginx的proxy是一个很强大的功能,实现了7层负载均衡 功能强大.性能卓越,运行稳定 配置简单灵活 能自动提出工作不正常的后端服务器 上传文 ...

  6. VC++ 返回13位时间戳(Unix时间戳)

    //获取13位时间戳 CString GetUnixTime() { CString nowTime; SYSTEMTIME sysTime; GetLocalTime(&sysTime); ...

  7. 一个java创建,删除,构建Jenkins等功能的JenkinsUtil工具类

    package com.vip.webpagetest.utils; import java.io.InputStream;import java.util.ArrayList;import java ...

  8. web文件上传,带进度条

    原生ajax上传带进度条 (百分比) <%@ page language="java" contentType="text/html; charset=UTF-8& ...

  9. Win10下轻松安装centos7.0(推荐)

    Windows10下安装centos7.0虚拟机环境 Windows10自带了一个类似Vmware虚拟化产品Hyper-V管理器 如果没有找到这个的小伙伴可以从菜单中的windows管理工具找到如图: ...

  10. NonSerialized 属性忽略序列化报错'NonSerialized' is not valid on this declaration type

    [XmlIgnore] [NonSerialized] public List<string> paramFiles { get; set; } //I get the following ...