【听课笔记】析合树

  • 连续段: r − l = m x − m n r-l=mx-mn rl=mxmn,比如 {2,4,3,5}是,{3,5},{2,4,3}不是.
    • 性质1:一个点是连续段,一个排列也是(显然)
    • 性质2:两个连续段的交必为连续段(感性)
  • 本原段:一个连续段,不存在其他连续段和它相交确不包含

一个点表示一个本原段

  • 合点:儿子按顺序递增或递减,比如
    在这里插入图片描述

    • 性质:任选两个点组成的区间也是连续段
  • 析点:不是合点的点。

一个连续段在析合树上的存在形式:

  • 单独一个点:析点或合点
  • 合点的一段儿子区间(方案为 ( s z e 2 ) 2 \dfrac{\binom {sze}2}2 2(2sze)

因此就可以求一个数列连续段个数。

求一个区间的最小包含连续段

找出原树上两个点,找LCA

  • 若LCA为析点,则这个点就是答案
  • 如果为合点,我们找到对应的两个儿子,它们之间形成的区间就是答案

包含一段区间的连续段个数

显然可以预处理每个点被包含的连续段个数,也就是祖先个数+祖先中合点包括此点的区间数

对于当前查询区间,先前往LCA,如果是析点直接返回这个点的答案,如果是合点还要加上包含 两个儿子区间的答案

查询区间连续段个数

类似zkw,把信息存到链上,然后维护一下即可

构造待补

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值