E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ2434
Fail树--学习笔记
先看下面这个问题
BZOJ2434
[Noi2011]阿狸的打字机TimeLimit:10SecMemoryLimit:256MBDescription阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机
niiick
·
2020-09-13 19:51
Fail树
NOI2011 阿狸的打字机(
BZOJ2434
) 题解
Link原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2434Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。按一下
huzecong
·
2020-08-21 00:08
OI
bzoj2434
: [Noi2011]阿狸的打字机 trie+线段树
我们可以先按题目描述建出一个trie树,然后得到fall树,我们可以发现,fall树的子树里有#include#include#include#includeusingnamespacestd;#definemaxn110000#definelsonl,mid,rt>1intsum[maxn*8];voidpushup(intrt){sum[rt]=sum[rtmid)res+=qsum(rson
IED98
·
2020-08-03 12:43
数据结构
AC自动机&&Trie树
【BZOJ】2434: [Noi2011]阿狸的打字机-AC自动机&fail树&BIT
传送门:
bzoj2434
题解最近终于填了ac自动机的坑qwq。先来大暴力,我们扫一遍当前询问的y串,一个一个判断。
ccosi
·
2019-03-07 07:23
AC自动机
树状数组
bzoj2434
阿狸的打字机
题目链接思路可以发现,其实题目中所描述的操作,就是在\(AC\)自动机上走的过程。输出就是打上标记。删除就是返回父亲节点。然后看询问。每次询问字符串\(x\)在字符串中\(y\)出现的次数。其实也就是问在\(AC\)自动机上的\(y\)这个字符串上,有多少位置的\(fail\)指针指向\(x\)的结尾。所以想到将\(fail\)指针反过来,建立\(fail\)树。先考虑只有一次询问的时候怎么做。只
wxyww
·
2019-02-01 16:00
BZOJ2434
【NOI2011】阿狸的打字机
BZOJ2434
阿狸的打字机阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和’B’、’P’两个字母。
AZRAEL_DEATH
·
2017-08-11 11:27
AC自动机
【
bzoj2434
】阿狸的打字机 AC自动机+树状数组
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2434【题解】这是一道很神的题。先建一个AC自动机,这里需要维护一下父结点,以便删除时返回上层。然后构建一个fail树,得出dfs序,得出每个结点进出时间l[x],r[x],考虑这样一种暴力对于一个询问x,y,查询自动机上root-y的每一个结点,沿着fail指针是否会走到x的结尾点如果可以
chty_syq
·
2016-11-21 13:10
bzoj
树状数组
AC自动机
bzoj2434
【NOI2011】阿狸的打字机
2434:[Noi2011]阿狸的打字机TimeLimit: 10Sec MemoryLimit: 256MBSubmit: 2119 Solved: 1225[Submit][Status][Discuss]Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机
AaronGZK
·
2016-05-25 00:00
字符串
树状数组
AC自动机
bzoj
dfs序
bzoj2434
(NOI2011).阿狸的打字机(AC自动机 && DFS序 && 树状数组)
阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l按一下印有'B'的按键,打字机凹槽中最后一个字母会消失。l按一下印有'P'的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不
ALXPCUN
·
2016-04-22 14:55
bzoj2434
: [Noi2011]阿狸的打字机
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2434题意:中文题。分析:给定一个这样的字符串很容易就想建一颗trie树。然后在trie树上进行匹配,这不就是AC自动机么!我们可以直接考虑这样的一种暴力,当查询x,y时我们只要将从root到y路径上所有的点沿着fail跑一遍,只要经过一次x就ans+1。但是这样会超时,我们在观察这个结构的特征
Fsss_7
·
2016-04-10 21:00
[
BZOJ2434
][NOI2011]阿狸的打字机(AC自动机+树状数组)
题目描述传送门题解因为这里打字机的特殊性质,所以trie树可以边扫边建。注意存一下father因为B操作是需要跳回去的。建好fail指针之后,每次询问其实就是判断y这个单词里的节点有多少个指针指向了x。其实可以逆向思维,就是求fail树中x的子树有哪些是在y这个单词中。这一点是通过“fail树的神奇性质”想到的。求出fail树的dfs序。离线之后按照y排序,将y单词所有的节点权值都+1,然后对于每
Clove_unique
·
2016-04-04 23:00
树状数组
AC自动机
NOI
bzoj
【codevs1946】【
BZOJ2434
】阿狸的打字机,AC自动机练习
传送门1传送门2写在前面:15行的树状数组和35行的AC自动机和40行主程,你会先检查哪个?思路:纠结了好久的自动机题目,不论网上的神犇们怎么说,蒟蒻就是觉得好难啊(/□),算是学了一门新姿势了吧——fail树+dfs序树状数组维护AC自动机上的信息,纠结了许久,磨出来以后又和黄学长std拍了好久,发现操作几乎改的一模一样但答案还是不对,自动机和dfs改了又改,差点就推翻重写了,最后发现自己的ge
xym_CSDN
·
2016-04-04 20:00
【
bzoj2434
】[Noi2011]阿狸的打字机 AC自动机+fail树+dfs序+树状数组
Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和’B’、’P’两个字母。经阿狸研究发现,这个打字机是这样工作的:l输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l按一下印有’B’的按键,打字机凹槽中最后一个字母会消失。l按一下印有’P’的按键,打字机会在纸上打印出凹槽中现有的所有字母并
LOI_DQS
·
2016-02-24 21:00
bzoj2434
阿狸的打字机 AC自动机&&树状数组
做完CTSC的题再去做NOI的题。。发现还是不会ww~/(ㄒoㄒ)/~~虽然是常规思路。 首先你会发现他打字的方式非常奇妙。。实际上不就是在构建一颗Tire吗?P相当于给节点标记;B相当于退回父亲节点;a..z相当于建立新的节点。 然后跑AC自动机得到fail指针。 首先得知道如何得出单个操作x,y。在后缀数组(sam,后缀树等)中,判断u是v的子串的方法是看是否是每一个
lych_cys
·
2016-02-09 15:00
DFS
树状数组
tire
AC自动机
bzoj2434
: [Noi2011]阿狸的打字机
传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2434一个讲得很详细的题解:http://blog.csdn.net/huzecong/article/details/7769988思路:这题的想法有点神啊....先构建AC自动机,然后怎么判断一个串b是a的子串呢?用fail指针就可以了。如果a串中有节点可以通过fail指针走到b的
thy_asdf
·
2015-07-26 17:00
AC自动机
BZOJ2434
【AC自动机】
/*Iwillwaitforyou*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #definem_pmake_pair #definep_bpush_back #definefifirs
Lethelody
·
2015-05-15 11:00
【
BZOJ2434
】【NOI2011】阿狸的打字机 AC自动机
转载请注明出处233:http://blog.csdn.net/vmurder/article/details/42875307这是一道神题。首先我们需要建立AC自动机,然后再建个Fail树,之后发现 如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。然后这样做就很可以了,但是仍然不能AC,这时我们只需要按照F
Vmurder
·
2015-01-19 16:00
题解
AC自动机
BZOJ2434
Noi2011
阿狸的打字机
NOI2011 阿狸的打字机(
BZOJ2434
) 题解
Link原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2434 Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)
huzecong
·
2012-07-21 11:00
算法
struct
tree
query
output
Pointers
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他