
这是一道非常简单的后缀数组
既然与LCP有关,我们考虑在height数组上解决这个问题
我们找到最小的height位置h后,二分到两边,都看作满足期望为1的条件时解决
那么对于左边最小贡献设为f1,右边最小贡献设为f2
我们现在就是分配期望到两边,考虑一个点在左右需要的贡献
f1*p1+f2*h==f2*p2+f1*h,p1+p2==1
那么就可以解出p1和p2的具体大小
最后解出期望就是答案了
本文探讨了一种利用后缀数组解决与LCP(最长公共前缀)相关问题的方法。通过分析height数组,采用二分法寻找最优解,并通过分配期望值于两侧来求得最终答案。

这是一道非常简单的后缀数组
既然与LCP有关,我们考虑在height数组上解决这个问题
我们找到最小的height位置h后,二分到两边,都看作满足期望为1的条件时解决
那么对于左边最小贡献设为f1,右边最小贡献设为f2
我们现在就是分配期望到两边,考虑一个点在左右需要的贡献
f1*p1+f2*h==f2*p2+f1*h,p1+p2==1
那么就可以解出p1和p2的具体大小
最后解出期望就是答案了
5190
300

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