树上后缀排序

把后缀排序搞到了树上。

一个节点的字符串的定义为 这个节点到根经过的所有字符组成的字符串。请将这些字符串按字典序排序。输出排名为i的字符串所在的节点。

特别地,如果两个节点所代表的字符串完全相同,它们的大小由它们的父亲所代表的字符串的大小决定,如果仍相同,则由它们编号的大小决定。

就是自己的字符串是第一关键字 第二个关键字是父亲 第三关键字是自己的编号 xht37说没定义大小决定 默认由小到大(是我又孤陋寡闻了。

可以发现定义成这个样子 我们没法上广义SAM 最坏复杂度可能要被卡到(n^2).

考虑一下我们后缀排序。我又忘了后缀数组是啥了(做了那么多题了说忘就忘。。

md 我不会 感觉实现这个有点复杂 我多思考清楚再来填坑吧。

上两道模板题:

LINK:luogu P5353 【XR-1】树上后缀排序

这个是一道树上后缀排序的模板 但是我不会。

LINK:luogu P5346 【XR-1】柯南家族

求第k大不难想到 主席树,我们没必要树剖 一种是链的第k大 我们直接dfs序搞。一种是子树内的 发现也可以dfs序搞不过要两棵主席树 当然后者还可以主席树合并搞。

前提是求出树上的SA数组才行,但是我不会。。

原文地址:https://www.cnblogs.com/chdy/p/12502918.html