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
BZOJ3881
bzoj3881
[Coci2015]Divljak(AC自动机+fail树+dfs序+树状数组+树链剖分)
bzoj3881
[Coci2015]Divljak原题地址:http://www.lydsy.com/JudgeOnline/problem.php?
Bfk_
·
2020-08-23 00:44
&
图论
树状数组
AC自动机
fail树
题解
思维题
bzoj
树链剖分
【
bzoj3881
】[Coci2015]Divljak AC自动机+树链的并+DFS序+树状数组
题目描述Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的。接下来会发生q个操作,操作有两种形式:“1P”,Bob往自己的集合里添加了一个字符串P。“2x”,Alice询问Bob,集合T中有多少个字符串包含串S_x。(我们称串A包含串B,当且仅当B是A的子串)Bob遇到了困难,需要你的帮助。输入第1行,一个数n;接下来n行,每行一个字符串表示S_i;下一行
GXZlegend
·
2018-04-04 10:00
[
BZOJ3881
][Coci2015]Divljak(AC自动机+dfs序+lca+bit)
题目描述传送门题解首先把所有的S串都丢到trie树里,建立fail树。每加进来一个T,把它在AC自动机上暴力匹配,匹配到的每一个点在fail树中到根的路径上出现过的S串end标记的S串都应该+1,也就是说,每一次求出匹配到的每一个点在fail树中到根的路径上出现过的end标记表示的S串,然后取并集,这些S串的答案应该+1.由于有可能有重复计算,我们需要把所有匹配过的点按照dfs序排序,然后要消除相
Clove_unique
·
2016-12-25 10:27
题解
lca
bit
AC自动机
dfs序
BZOJ3881
: [Coci2015]Divljak
对Alice的所有串构造AC自动机,并建出Fail树 每当Bob添加一个串时,在AC自动机上走,每走到一个点,就把它到根路径上所有点的答案+1 需要注意的是每次操作,相同的点只能被加一次 所以在需要操作的点构成的虚树上进行修改操作,避免重复修改 对于修改,x到根路径上所有点答案+1等价于在x点打上一个标记,对于所有祖先都有效 由此将问题转化为单点修改,子树查询 树状数组维护 注意到关
·
2015-10-31 11:49
div
上一页
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
其他