lleozhang的博客

oier,生而骄傲

后缀自动机例题精讲

这一篇是后缀自动机的一些例题题解及总结: 例: bzoj 3998 题意:求一个字符串中第k小子串,t=0表示子串仅区别字典序,t=1表示子串区分起止位置 解析:建起后缀自动机,构造parent树,利用后缀自动机有向无环累计子串个数查询即可 具体解析:https://blog.csdn....

2019-04-20 10:39:28

阅读数 71

评论数 0

bzoj 3998

我们分成两种情况来分析这个问题:t=0和t=1 t=1时,每一个子串出现的次数就是他在parent树上所在子树内前缀节点的个数,这一点我们已经说的很清楚了 利用SAM有向无环的性质,我们可以在parent树上统计完之后在后缀自动机上dfs,对每个点累计以他为开头的所有子串的总数 然后在查询的...

2019-04-20 10:33:41

阅读数 21

评论数 0

后缀自动机实际应用

上一篇我们具体介绍了后缀自动机的构造方式,但并没有谈它的应用,那么我们在这一篇里详细谈一谈后缀自动机的应用 首先,后缀自动机的性质:从根节点开始可以识别一个字符串的所有子串 接下来,我们需要给出一个定义: 将后缀自动机上的pre指针反指,会得到一棵树形结构,我们把这棵树叫做parent树! ...

2019-04-20 10:21:36

阅读数 47

评论数 0

后缀自动机学习笔记

学了一周后缀自动机,觉得...好难啊(主要还是自己太弱了...) 看见网上很多大佬的讲解,感觉总是有些似懂非懂,索性一起拿出来做一个总结,可能效果会好一些 首先,我们能看到这样一个定义: 后缀自动机是一个的确定性有限状态自动机,能接受这个字符串的所有后缀 然后就不知道了...... (不...

2019-04-20 09:23:24

阅读数 43

评论数 0

bzoj 3277

十分之恶心的后缀自动机 (其实是水题,但是我太弱了...) 首先,有一个预备知识:bzoj 2780https://blog.csdn.net/lleozhang/article/details/89365183 现在我们假定你会了这道题 然后我们来讨论这个问题: 套路是一样的:仍然建起...

2019-04-18 21:07:47

阅读数 22

评论数 0

bzoj 2780

后缀自动机的应用 首先我们观察到:如果一个询问串的答案不为0,那么这个串一定是至少一个模式串的子串 如果只有一个模式串,那么这个问题可以简单地用什么东西解决掉(比如普通后缀自动机) 而这里有很多模式串,所以普通后缀自动机是不够的。 那么我们提出广义后缀自动机 所谓广义后缀自动机,可以简单...

2019-04-18 10:20:28

阅读数 21

评论数 0

lnoi2019游记

好诡异的省选...... day0: 莫名其妙的订了下午从sy到dl的火车,得五点多才能到,所以.......是不需要试机的吗...... 好吧... 看着停课的jflr们,感觉他们好强啊,像我这种酱油选手聊尽人事,不要被高一的虐就好... 考前期望:lnsyzx=3,lnsyzx(分校...

2019-04-16 19:03:49

阅读数 225

评论数 0

bzoj 3238

后缀数组+单调栈的应用 首先我们研究一下这个表达式,可以发现前半部分与串的情况并没有关系,而只是跟串的长度有关,所以我们先把前半部分算出来: 于是我们只需计算出即可 那么可以发现,对于排名分别为i,j的两个串,他们的lcp应当是: 但是这里的时间复杂度仍然很大 我们换一个角度来思考:...

2019-04-15 20:00:05

阅读数 16

评论数 0

bzoj 4816

这题是莫比乌斯反演的典型题也是很有趣的题。 题意:求,其中f为为斐波那契数列 那么首先观察一下指数,发现是我们熟悉的形式,可以转化成这样的形式: 令T=kd,且假设n<m,有: 令 则原式= 这样的话我们的步骤就是这样的: 线性筛出莫比乌斯函数,同时递推求出f 然...

2019-04-10 18:30:01

阅读数 21

评论数 0

bzoj 3529

非常好的一道莫比乌斯反演题,对提升自己的能力有很大帮助。 首先我们分析一下题意:题意让我们求,其中 那么我们首先对后面的式子进行一下变形,变形过程详见https://blog.csdn.net/lleozhang/article/details/89093689 于是最后变成了这个样子: ...

2019-04-09 18:49:50

阅读数 18

评论数 0

bzoj 2301

一道莫比乌斯反演入门题。 首先观察题目要求:的数对数 首先可以发现,这个东西同时有上界和下界,所以并不是很容易计算 那么我们变下形,可以看到:原式= 是不是清晰很多了?(当然没有!) 不,这一步很重要的目的在于消去了下界,使得我们的计算更方便了。 而且可以发现这四个式子的形式是一样的,...

2019-04-08 16:29:05

阅读数 79

评论数 0

noip 2018游记

憋了好久的游记... 考虑到写游记是oi界的传统,所以还是应该写一篇的。 day0: 上午9:30的火车出发,车上颓三国杀! 中午12:00到了大连,下午2:00才开始试机,还是得先去大连大学,在食堂吃午饭 (食堂真良心,菜量巨大) 下午试机,为什么按字典序排的考号啊...x,y,z集...

2018-11-21 13:15:16

阅读数 63

评论数 0

bzoj 4011

看了好多篇题解才看懂的题,我实在太菜了... 首先根据一个我不知道的算法,可以证明在没有加入新的边的时候,原图的所有生成树的方案数就是所有点(除1以外)的度之积 那么在新加入这条边之后,我们仍然可以这样计算,但是会产生一种问题:就是会出现环! 所以我们需要利用一些容斥,把不合法的情况去掉 ...

2018-11-06 09:41:21

阅读数 57

评论数 0

bzoj 3191

非常好的一道题 看到这道题,肯定能想到概率dp,但是状态的设计与转移都是一个难点 如果正向模拟来设计状态,那么不难发现是很难以转移的 所以我们考虑反向模拟,用类似博弈的方法来转移 不难发现,如果只剩了最后一个人,那么这个人获胜的概率是1 而如果只剩两个人,我们完全可以通过摸牌的情况算出每...

2018-11-06 08:15:30

阅读数 51

评论数 0

bzoj 3566

非常好也是比较难的题 首先,不难看出这是一道树形的概率dp 那么我们就要考虑转移 我们发现,一个点能充上电的概率是这个点本身通电的概率+这个点的子节点给他传过来电的概率+这个点的父节点给他传过来电的概率 但是这里的加法都是概率的加法,也就是说满足如下公式: 那么如果是三元事件,这个公式会...

2018-11-06 08:06:25

阅读数 38

评论数 0

bzoj 1042

典型的背包+容斥 首先,考虑如果没有个数的限制,那么就是一个完全背包,所以先跑一个完全背包,求出没有个数限制的方案数即可 接下来,如果有个数的限制,那么我们就要利用一些容斥的思想:没有1个超过限制的方案=至少0个超过限制-至少1个超过限制+至少2个超过限制-至少3个超过限制+至少4个超过限制 ...

2018-11-06 07:40:27

阅读数 21

评论数 0

bzoj 2427

非常好的一道题,可以说是树形dp的一道基础题 首先不难发现,:如果我们把有关系的两个点用有向边相连,那么就会形成一个接近树的结构。如果这是一棵完美的树,我们就可以直接在树上打背包了 但是这并不是一棵完美的树,甚至并不是一棵树,因为: 首先,由于题中有n个点,还有n条边,所以有很大的几率出现环...

2018-11-06 07:24:39

阅读数 35

评论数 0

bzoj 1222

比较简单的背包dp,设计状态f[i][j]表示到了前i个物品,第一台机器加工时间为j,第二台机器加工所用的最小时间,然后背包转移即可 本题卡空间,需要滚动数组优化 本题卡时间,稍微卡下常就行 #include <cstdio> #include ...

2018-11-03 16:14:21

阅读数 30

评论数 0

bzoj 1076

发现自己已经把期望dp忘光了... 其实本质上非常简单,就是利用状压的思想跑期望 首先很容易设计出状态:记状态f[s][i]表示到了第i个点,之前已选过的点的状态为s时所能获得的最大期望得分 但是会发现这样做没法转移(你可以试一下,我做了半个点做得原地爆炸) 但是我们知道,期望dp常见的策...

2018-11-03 08:07:31

阅读数 25

评论数 0

CF1000G

蜜汁树形dp... 首先分析一下:他要求一条边至多只能经过两次,那么很容易会发现:从x到y这一条路径上的所有边都只会被经过一次。(如果过去再回来那么还要过去,这样就三次了,显然不合法) 那么其他能产生贡献的部分就只有一下几个部分:x,y的子树内部,LCA(x,y)的上半部分的树以及x-y路径上...

2018-11-02 19:21:34

阅读数 74

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭