• 线段树合并杂题


    按照 这个题单 做的。

    有一些单独发了题解(前三题浓缩在了我的一篇文章中),在这里就不说了。

    准备填坑。 准备没事做了再打,因为感觉它们思路简单却代码长,懒啊……

    如果有什么建议请在评论区纠正我,感谢!

    rot-tree (已做)

    给每个点创造一个权值线段树。点 $o $ 的线段树代表以 (o) 为根的子树的树,有哪些值。

    假设现在我们在线段树合并阶段,对于一个点,设它的两个儿子是 (o1)(o2)(o1)(o2) 的线段树中的点 (lsim r),它的逆序对个数是多少?我们这样讨论:

    1. 左子树的贡献
    2. 右子树的贡献
    3. 跨过左右子树的贡献

    对于1和2,我们递归求解。对于3,因为是权值线段树,左边子树的值域肯定比右边子树的值域小,所以乘起来就是贡献。即,如果不交换左右子树,贡献就是 ans1=tre[ o1右儿子 ].val X tre[ o2左儿子 ].val,交换同理,贡献为 ans2=...。合并完后,线段树合并到它们那和蔼可亲的父亲。ans1和ans2要取个min,加到总答案中。

    谈笑风生 (未做)

    点 $o $ 的线段树代表以 (o) 为根的子树中的节点,深度是多少。然后对于点 (o) 的询问,query(dep[o],dep[o]+k),以及fa=o的kth祖先;query(fa,fa[o]+k)。然后记得加上 (c) 的贡献。

    Dominant Indices (已做)

    同blood cousins,线段树多记一个最大值。

    注意细节。。。这里存的是无向边,blood cousins存的是有向边,坑杀我也!

    Tree Requests (未做)

    值域线段树?可能要边合并边处理……还没想好。但是回文串的条件是至多只有一种字母是出现奇数次的。

    看了题解是 (2^{26}) 状压

  • 相关阅读:
    SQL 操作总结
    WaitHandle.WaitOne的第二参数
    java泛型测试
    生成商品静态页的类和方法
    CodeSmith4.1在控制台根据模板生成文件
    Eclipse中最常用的热键
    struts2的struts.properties配置文件详解 (转)
    eclipse rcp 多线程
    eclipse RPC加载Spring 容器
    使用Apache+tomcat比单独使用tomcat能带来什么样的好处及坏处
  • 原文地址:https://www.cnblogs.com/BlankAo/p/14015551.html
Copyright © 2020-2023  润新知