随笔分类 - 启发式合并—set启发式合并
摘要:题意 "题目链接" Sol 只会后缀数组+暴躁莫队套set$n \sqrt{n} \log n$但绝对跑不过去。 正解是SAM + set启发式合并 + 二维数点/ SAM + LCT 但是我只会第一种qwq 首先一个性质是两个前缀的最长公共后缀就是他们再parent树上的LCA的len 那么我们考
阅读全文
摘要:题意 "题目链接" Sol 神仙题Orz 首先不难看出如果我们从$a_i$向$i$连一条边,我们会得到以$0$为根的树(因为每个点一定都有一个入度,出现环说明无解),同时在进行排列的时候需要保证父亲节点一定在孩子节点之前出现 接下来考虑直接贪心。对于某些权值很小的点,我们需要让其尽早出现,同时又要满
阅读全文
摘要:题意 "题目链接" Sol 和cc的一道题很像啊 对于初始的$N$个点,每加一条限制实际上就是合并了两个联通块。 那么我们预处理出$val[i]$表示的是$i$节点所在的联通块根节点转了$1$圈,该节点会转多少圈 并查集维护联通性以及联通块大小,直接启发式合并就可以了 ~~跑的好像还挺快~~ cpp
阅读全文
摘要:题意 题目链接 Sol 如果给出的树是链的话显然就是LIS 不是链的时候直接当链做,每个节点维护一个multiset表示计算LIS过程中的单调栈 启发式合并即可 时间复杂度:$O(nlog^2n)$
阅读全文