树状数组——从背模板到树套树
这是一篇披着PJ组数据结构外衣的树套树教程。
大约会(尝试着)较为本质地简介一下树状数组?
这是一篇披着PJ组数据结构外衣的树套树教程。
大约会(尝试着)较为本质地简介一下树状数组?
cdq分治也是咕了好久了..最近总算把它学了。
cdq分治是一种离线算法,可以代替一些复杂的数据结构,降低代码难度,减小常数。废话大家都知道。
时隔半年又来到了YALI。
给你一个字符串 $s$ 和 $n$ 个字符串 $x_{1..n}$,对每个 $x_i$,求有多少个 $s$ 的子串可以由 $x_i$ 旋转得到。
旋转一个字符串就是把它的一个前缀移到后面,如 abcd
可以旋转得到的字符串有 abcd
,bcda
,cdab
,dabc
。
后缀自动机是一种处理字符串问题的有力工具(废话),它的码量不比后缀数组大(实际代码难度不比后缀数组小,但也不难),处理问题时的思维难度往往比后缀数组小,复杂度更优秀。若字符集大小为 $|\Sigma|$,则:构建时间复杂度 $O(n|\Sigma|)$,转移时间复杂度 $O(1)$,空间复杂度 $O(n|\Sigma|)$ 或 构建时间复杂度 $O(n\log|\Sigma|)$,转移时间复杂度 $O(\log|\Sigma|)$,空间复杂度 $O(n)$。