51、高效表示与计数单词中的反幂因子

高效表示与计数单词中的反幂因子

1. 简单计数算法

1.1 算法描述

算法 1:SimpleCount(w, n, k)

(Cd)⌊n/k⌋
d=1 := (∅, . . . , ∅)
for q := 0 to k − 2 do
    foreach (q + 1)-MGR or generalized run γ in w do
        p := per(γ)
        if (q + 1) | p then
            d := p / (q + 1)
            I := Squares(q, d, γ)
            Cd := Cd ∪ { Chaink(q, d, I) }
antipowers := 0
for d := 1 to ⌊n/k⌋ do
    WeakPow k(d) := (∪ Cd) ∩ [0 . . n − kd]
    antipowers := antipowers + (n − kd + 1) − |WeakPow k(d)|
return antipowers

1.2 复杂度分析

  • 命题 11:长度为 n 的单词中 k - 反幂因子的数量可以在 $O(nk^3)$ 时间内计算。
    • 证明:使用引理 10 的 (b) 和 (c) 点,将集合 WeakPow k(d) 表示为 $O(nk^2)$ 个区间链的并集。每个区间链最多由 k 个区间组成。应用引理 6 可以在 $O(nk^3)$ 总时间内计算 WeakPow k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值