zoukankan      html  css  js  c++  java
  • Two strings 的另一种解法

    Two strings 的另一种解法

    论文中的解法是离线插入 (O(log n)) 询问 (O(log n)) 的,不过我发现有一种离线插入 (O(1)) 询问 (O(log n)) 的方法。

    首先我们离线处理,将两个串连在一起。我们以 (ababa)(aba) 为例:

    比如现在我们要询问 (A)([1,4])(B)([1,2])

    我们先在 (rnk[7]) 开始倍增,使得 ([l,r])(height>=2)

    然后我们在这个区间中找多少 (1leq sa[i]leq 3)。为什么是 (3) 呢?因为 (3=5-len_b+1)。显然答案为 (2)

    询问就是主席树上区间求和,询问是 (O(log n)) 的,插入是 (O(1)) 的。

  • 相关阅读:
    Centos7.x做开机启动脚本
    贝叶斯方法之一
    R程序包
    c#调用R
    感悟--不可抗拒的行为
    IP等级
    词语
    关于editplus设置java和c#
    csc命令
    editplus配置csharp
  • 原文地址:https://www.cnblogs.com/owencodeisking/p/10395258.html
Copyright © 2011-2022 走看看