高效表示与计数单词中的反幂因子
1. 引言
在单词的研究中,正则性是一个重要的概念。传统的正则性通常基于相等性,例如幂次结构。而反幂(Antipower)则是一种基于多样性的新型单词正则性。假设 $x = y_1 \cdots y_k$,其中 $k \geq 2$ 且 $y_i$ 是长度相同的单词,有以下定义:
- 若所有 $y_i$ 都相同,则 $x$ 是一个 $k$ - 幂。
- 若所有 $y_i$ 两两不同,则 $x$ 是一个 $k$ - 反幂(或 $(k, d)$ - 反幂)。
- 若 $x$ 不是 $k$ - 反幂,即存在 $i \neq j$ 使得 $y_i = y_j$,则 $x$ 是一个弱 $k$ - 幂(或弱 $(k, d)$ - 幂)。
- 若 $y_1 = y_k$ 且 $q = k - 2$,则 $x$ 是一个带间隙的 $(q, d)$ - 平方。
前三种情况中,长度 $d$ 称为幂或反幂 $x$ 的基。
此前的研究中,Badkobeh 等人提出了一些关于反幂因子的算法结果:
- 长度为 $n$ 的单词中,$k$ - 反幂因子的最大数量是 $\Theta(n^2/k)$,并且可以在 $O(n^2/k)$ 时间内报告所有这些因子。特别是,指定基 $d$ 的所有 $k$ - 反幂因子可以在 $O(n)$ 时间内报告。
- 反幂查询 $(i, j, k)$ 询问单词的因子 $w[i \cdots j]$ 是否为 $k$ - 反幂。该查询可以通过以下方式回答:
- 使用大小为 $O(n)$ 的数据结构,在 $O(k)$ 时间内回答。
- 使用大小为 $O(n^2)$ 的数据结构,在 $
超级会员免费看
订阅专栏 解锁全文
1037

被折叠的 条评论
为什么被折叠?



