【考试总结】2022-06-17

sign

每个点有函数 xai+11x1 而答案就是子树中每个点函数乘积在 deg 处的点值

预处理每个子树 n 的点值,对于 >n 的求解直接在子树里面暴力算

时间复杂度 Θ(nnlogV)

match

只会 Θ(n3)

注意到 f 数组的取值形式为 fi=fi1+1 或者 fi=0 ,后者对应失配时直接跳回 0

枚举每对 (l,r) 作为最大的 fi,注意此时相同的 Sl1,r1,Sl2,r2 只在 l1 最小值处计算 T 的数量

这样的钦定本质上是确定了 T 的一个前缀

由于钦定了最长的匹配,如果再在 S 中其它 endpos 后一个字符不能是 T 的这个前缀后面的字符

同时预处理每个 S[l,r] 和整串 SKMP 数组,在模拟匹配的过程中每个失配位置不能有 Border

tree

一对 [l,r]d(LCA) 会给 Ll,Rr 的询问 [L,R] 贡献一种数值,那么对于同一个 lLCA 找到最小的 r 最好,那么树上启发式合并可以找到对应的 Θ(nlogn) 个矩形

但是 LCAd 相同的矩形需要先求并再加一,不过本题矩形都是以 (1,n) 为左上角的,可以使用单调栈轻松求出

此时需要进行矩形加的元素只有 Θ(nlogn) 个,配合扫描线即可

总复杂度 Θ(nlog2n+mlogn)

posted @   没学完四大礼包不改名  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示