文章目录

  • 题目描述
  • 解析
  • 代码

题目描述

解析

(没有做出来,这个ans的处理方式其实也不难想…qwq)

考虑把T都作为模板串加入trie树
加入每个模板串自然就是按照i顺序的
所以我们在插入t的时候沿途标记一下
新出现的未标记的i的间隔就是当前的i与上一次的标记的差-1
在其中一直取max即可得到最大间隔
不要忘记还有一个间隔是n-最后的标记值!

预处理完trie树后就简单了
让s在trie树上跑,跑到尾就返回尾的ans值即可
如果跑一半失配了说明没有t符合条件,直接返回n即可

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
typedef unsigned long long ull;
const int N = 6e6+100;
const int M=1e6+10;
const ll mod=199907210507;
int n,m;
int tr[N][4],tot=1,ans[N],id[N];
char s[N];
void build(int k){int l=strlen(s+1),p=1;for(int i=1;i<=l;i++){int a=s[i]-'a'+1;if(!tr[p][a]) tr[p][a]=++tot;p=tr[p][a];ans[p]=max(ans[p],k-id[p]-1);id[p]=k;}
}int ask(){int l=strlen(s+1),p=1;for(int i=1;i<=l;i++){int a=s[i]-'a'+1;if(!tr[p][a]) return n;p=tr[p][a];}return ans[p];
}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf(" %s",s+1);build(i);}for(int i=1;i<=tot;i++){ans[i]=max(ans[i],n-id[i]);}for(int i=1;i<=m;i++){scanf(" %s",s+1);printf("%d\n",ask());}return 0;
}
/*
9 6 10
5 6 2 10 10 7 3 2 9
1 4 4 3 2 16 4 10
3 5 2 7 1 9
3 8 2 10
*/

YBTOJ:前缀询问(trie树)相关推荐

  1. Trie树(字典树)详细知识点及其应用

    Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...

  2. trie树查找前缀串_Trie数据结构(前缀树)

    trie树查找前缀串 by Julia Geist Julia·盖斯特(Julia Geist) A Trie, (also known as a prefix tree) is a special ...

  3. 前缀树(字典树,单词查找树,Trie树)

    参考网址:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy 概述 前缀树又名字典树,单词查找树,Tri ...

  4. java单词匹配算法_前端学数据结构与算法(八): 单词前缀匹配神器-Trie树的实现及其应用...

    前言 继二叉树.堆之后,接下来介绍另外一种树型的数据结构-Trie树,也可以叫它前缀树.字典树.例如我们再搜索引擎里输入几个关键字之后,后续的内容会自动续上.此时我们输入的关键词也就是前缀,而后面的就 ...

  5. 分门别类刷leetcode——高级数据结构(字典树,前缀树,trie树,并查集,线段树)

    目录 Trie树(字典树.前缀树)的基础知识 字典树的节点表示 字典树构造的例子 字典树的前序遍历 获取字典树中全部单词 字典树的整体功能 字典树的插入操作 字典树的搜索操作 字典树的前缀查询 字典树 ...

  6. 实现字典树(前缀树、Trie树)并详解其应用

    今天看到一个比较好的数据结构,字典树,做一下记录,以供自己后期复习和读者朋友的参考. 1.定义 字典树又称单词查找树.前缀树.Trie树等,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序 ...

  7. Trie树实现前缀自动补全 + AC自动机实现敏感词过滤

    文章目录 背景 扩展 AC自动机 背景 最近参与了某业务系统的开发, 需要根据城市的名字简称,找到其官方的完整名称.比如云南的大理,其实其完整的名称是大理白族自治州.可以参考官方的行政区划,点这里. ...

  8. python Trie树和双数组TRIE树的实现. 拥有3个功能:插入,删除,给前缀智能找到所有能匹配的单词...

    #coding=utf-8 #字典嵌套牛逼,别人写的,这样每一层非常多的东西,搜索就快了,树高26.所以整体搜索一个不关多大的单词表 #还是O(1). ''' Python 字典 setdefault ...

  9. python3精要(5)-最长公共前缀Trie树

    单词查找树Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计. python函数引用传递 列表.字典 ...

最新文章

  1. 如何实现phpcms v9_4X版本tag的伪静态?
  2. linux下基于内存分析的rootkit检测方法
  3. python基础练习(九)
  4. VSCode配置 Debugger for Chrome插件
  5. ThreadPoolExecutor的七个参数详解
  6. C++ 静态线性表的顺序存储结构(数组实现)
  7. 爬虫实践---电影排行榜和图片批量下载
  8. java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
  9. 金蝶kis云,调用增删改查注意点
  10. Javascript获取select下拉框选中的的值
  11. python的自带数据集_怎么使用pandas读入python自带的iris数据集
  12. 新零售凶猛!瑞幸B轮融资估值翻倍,背后是同城物流的暗战
  13. DOSBOX的安装及ASM文件的编译
  14. 机器学习常见面试题总结
  15. 【FPGA】用Verilog语言实现流水灯实验
  16. 超过心跳间隔的客户端重连接导致额外的License消耗
  17. 从哪里租vps远程桌面服务器,vps远程桌面服务器租一个
  18. MySQL基本数据类型与Java基本数据类型
  19. depth是什么意思啊(depth是什么意思啊英语)
  20. Matrix factorization techniques for recommender systems,Yehuda Koren et al.,2009

热门文章

  1. 因为加班,谈了7年的女友跟我分手了……
  2. 《SAS编程与数据挖掘商业案例》学习笔记之九
  3. ffbe攻略站_最终幻想勇气启示录ffbe兵员强化攻略
  4. hadoop 2.7 java_Hadoop2.7环境搭建---Java环境变量
  5. java 面相,java学习17-面相对象(多态)
  6. ant 改变表格数据_表格技巧—Excel表格怎么替换数字
  7. java 计时_Breitling(百年灵)世界时间终极计时腕表
  8. 关于c语言的符号常量以下叙述中正确的是,关于C语言的符号常量,以下叙述中正确的是...
  9. python迅雷_迅雷下载链接解析器。
  10. sqoop将hive导出到mysql_Sqoop hive导出到mysql[转]