摘要: 又一次把lct写炸了,硬着头皮终于改对了 阅读全文
posted @ 2018-03-15 21:35 湮灭之瞳 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 代码参考:http://blog.csdn.net/qq_33229466/article/details/79140428 阅读全文
posted @ 2018-03-10 21:01 湮灭之瞳 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 学习地址:http://blog.csdn.net/lych_cys/article/details/51512278 阅读全文
posted @ 2018-03-08 20:28 湮灭之瞳 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 把边的编号看成边权,维护每个状态对应的最大生成树,得到一个数组a[i],表示第i条边在这个过程中替换的是那条边,询问时看一下a[l,r]内啊有多少个小于l的算一下答案就好;代码参考:http://blog.csdn.net/thy_asdf/article/details/50518526 阅读全文
posted @ 2018-03-05 14:17 湮灭之瞳 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 代码参考:http://blog.csdn.net/sdfzyhx/article/details/74359927 阅读全文
posted @ 2018-03-04 19:57 湮灭之瞳 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 用常用的套路,排序之后从大到小插入height,用并查集维护即可。 阅读全文
posted @ 2018-02-19 13:10 湮灭之瞳 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 学习了回文树,地址:http://blog.csdn.net/u013368721/article/details/42100363; 这个题就是正这反着加一遍就好,一开始我想的是枚举每个位置,然后一直按fail跳,再接上跳完的位置的len,后来想了不行,一个很长的全是a的串就可以卡成n^2。 阅读全文
posted @ 2018-02-17 13:26 湮灭之瞳 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 二分答案,(具体可见http://blog.csdn.net/neither_nor/article/details/51669114),然后就是判定问题,sa和sam都可以做,用sam写了一下,先用sam建后缀树,然后用主席树维护right集合就好了,每次判断把对应节点倍增到深度为mid的点,然后 阅读全文
posted @ 2018-01-31 18:17 湮灭之瞳 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 因为题目中树的特殊性暴力dfs建sam就好了。然后sam有一个有意思的性质是一个点代表的子串个数等于mx[i]-mx[fail[i]],至于为什么,我不会严谨的证明,但想想还是可以的,就是当前串的所有后缀减去前面已经表示过的后缀吗。其实这个个数也可以一个dp跑出来的,只不过这种方法更卓越。 阅读全文
posted @ 2018-01-31 10:46 湮灭之瞳 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机还是只会打板子,已经知道它是个什么东西了,但还是和它的构造联系不起来。。先背板子吧。 后缀自动机有一个很好的特性就是可以涵盖所有不重复的子串,我们利用这一点在它上面dp就行了; 代码参考:http://blog.csdn.net/fuxey/article/details/51050474 阅读全文
posted @ 2018-01-30 20:59 湮灭之瞳 阅读(145) 评论(0) 推荐(0) 编辑