
sa
TA201314
这个作者很懒,什么都没留下…
展开
-
[bzoj2555]substring 解题报告
考虑用splay维护sa,每次比较的时候二分+hash。注意要在两端加-∞和+∞的点。 时间复杂度O((n+q)log2n+m)O((n+q)\log^2n+m)(n是数据总长度,m是询问总长度) 但是普通的hash的话需要用long long+除法运算,一个点需要跑6s。所以改成自然溢出,瞬间只需要2s了。。。(要是被卡了怎么办。。) 听说如果用重量平衡树维护的话可以做到O((n+q)log原创 2016-04-13 17:36:15 · 936 阅读 · 0 评论 -
[spoj11482]Count on a trie 解题报告
一开始以为是AC自动机的题,发现一直不会求T的AC自动机。后来想到可以求S的sa,就发现简单多了! 我们可以dfs S,然后对于S中的一个节点处理它的询问。(二分+hash比较大小) 那么问题就在于怎么维护T的hash。本来想用可持久化块链,发现mle了。就只好学了下treap。 treap的话,如果把rank看成下标,把随机的值看成权值的话,其实就是一颗随机数列上的笛卡尔树。树高等于比前面的原创 2016-04-18 09:49:06 · 1166 阅读 · 0 评论