码迷,mamicode.com
首页 > 其他好文 > 详细

Two strings的另一种解法

时间:2019-02-18 14:31:27      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:主席树   技术   log   http   code   com   class   height   string   

技术图片

论文中的解法是离线插入 \(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\)

技术图片

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

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

Two strings的另一种解法

标签:主席树   技术   log   http   code   com   class   height   string   

原文地址:https://www.cnblogs.com/owencodeisking/p/10395258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!