zoukankan      html  css  js  c++  java
  • 线段树

    扫描线:

    给定一些点及其权值,一个大小拟定的矩阵能得到的最大值

    做法:每个点看作一个矩阵(该点为左上角),拟定矩阵的右下角在这块区域内能得到该点的贡献
    (y)坐标降序,每个点化作矩阵上下两点,线段树往下扫,点则控制(x)范围的值,达到上点加上去,到达下点减掉

    P3415
    简单思路,处理麻烦

    优化建边

    P3588
    差分约束+线段树

    模拟

    思维题
    查询烂大街,结合(hall)定理,查询易错点AC40

    区间不重叠线段最大数(经典贪心)

    做法:(st)表倍增,离散化坐标,(right[i][j])表示(i)坐标往前不重叠长度最小的距离

    (query(l,r))表示([l,r])区间的线段能选的最大数量,

    设现在选择((l,r))这条线段,((l_0,r_0))为已经确定的图中((l,r))往外扩展的空区间,则能选择这条线段的条件为:$$query(l_0,r_0)=query(l_0,l-1)+1+query(r+1,r_0)$$

    code

    P4088
    分类偏序(是求每次的最短距离)

    P4254
    标记永久化动态插入一次函数,查询(x)的最高点

    字典序(k)小最长上升子序
    由于字典序,所以倒叙做(转换为下降),(f[i])为倒序(i)结尾的最长长度,(g[i])为方案数,至于差值限制线段树解决
    (k)小则倒叙,(g[i]≥k)则选(i)否则不选(k-g[i])

    推式子P3488

    模拟分治P4062

    P3250
    一棵树,动态添加删除操作((u,v,w)),查询与(u)无交的最大值(w)
    做法:((u,v,w))时树剖提出(u,v)的子路径,除外的路径线段树添上(w),每个点套个可删(heap)不需要下传

    P3644
    枚举分割线

    P4211
    做法:(sumlimits_{l≤i≤r}dep[lca(i,z)])朴素就是({l≤i≤r})中根~(i)路径(+1)(z)往上爬,累加路径和为答案
    (~~~)优化:每个查询排序离线,前缀和相减,扫描线进点

    合并

    p3521
    给定一棵树,只有叶子节点有权值,可任意将某个节点(ls,rs)交换,求若干次交换后树前序遍历排叶子节点,逆序对能达到的最小值

    做法:因为是前序遍历,(ls,rs)交换,对除这棵子树外的节点无任何影响,对每棵叶子节点开值域线段树,不断往上合并

    每次统计逆序对((ls)内,跨(mid),(rs)内),跨(mid)则通过线段树合并的过程求出

    code

    P4556
    线段树合并+差分

    P3925
    树从下到上直接合并,模拟贡献

    P4577
    差分合并

    序列区间操作

    P4560
    给定一个序列,每次操作把((l,r))中小于(h)或大于(h)的数改成(h),求最终序列

    两个懒惰标记((add,del))意思同上,分情况讨论传递标记(乍看不可做,想一下怎么推重复标记就懂了)

    P4344
    (01)序列,每次拿出一个((l_0,r_0))中所有的(1)并清空,补上((l_1,r_1))中前缀(0)(不连续),多余的不管,查询((l,r))最长连续(1)长度

    查询烂大街了,补上:二分能补上的区间,区间赋值

    P3765
    求区间((l,r))众数(大于区间长度一半),带修改

    求不修的一棵主席树就够了,带修改要用到摩尔投票法(即减掉两个不同的数,最后剩下的相同数则为众数(还要判断是否大于区间长度一半))

    即线段树维护(cnt)(最后剩下的数的个数)即可以求出众数,再平衡树(位置)验证是否为真正的众数

    P3722
    经典的单点贡献操作题(注意是全排列)

    P3722
    简单更新+最长上升子序

    P3707
    展开(思路明显),标记麻烦

    P5009
    展开时间戳(思路不明显),标记麻烦

    魔卡少女
    ((l,r))中子区间异或和,经典线段树区间套区间(跨区间)操作

    P4065
    经典点对贡献(主要在于线段树控制范围)

    P4247
    解法

    4314
    维护历史最大值
    解法

  • 相关阅读:
    欢迎大家来到氨帝萝卜的博客园
    Java利用自定义注解、反射实现简单BaseDao
    spring boot 2.0.1.RELEASE版本之消息总线 ConfigClient配置自动刷新
    spring cloud eureka server之端口8889之谜
    关于spring cloud “Finchley.RC2”版本在spring cloud config中的ArrayIndexOutOfBoundsException
    关于中间件、J2EE的一些概念
    IP地址 子网掩码 默认网关 DNS(转)
    知识点大图
    Javascript是单线程的深入分析(转)
    SQL查询--选择运算(1)
  • 原文地址:https://www.cnblogs.com/y2823774827y/p/10351422.html
Copyright © 2011-2022 走看看