
树链剖分
sadnohappy
这个作者很懒,什么都没留下…
展开
-
【Tjoi2016&Heoi2016】树
Description 在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作: 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。) 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖 先)你能帮帮他吗?原创 2016-07-12 16:37:49 · 670 阅读 · 0 评论 -
【ZJOI2008】树的统计
Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身原创 2016-05-13 11:54:18 · 655 阅读 · 1 评论 -
【JZOJ4691】旅行
Description ason和ducky两父子一起去旅游。 在那之前,他们要先做一个计划。他们想参观的城市一共有N个,有M条双向道路将这些城市连接在一起。每个城市有自己城市的纪念品,纪念品的价格有时可能会发生变化。为了纪念这次旅行,Jason会在一次旅行中购买途径城市价格最低的纪念品。 现在Jason按照时间顺序告诉你Q个信息或者询问,希望你能帮助他俩完成旅行计划。 Q个信息或询问的格式如下:...原创 2018-10-16 22:03:39 · 214 阅读 · 0 评论 -
【JZOJ5977】堆
Description 给定一个以1号节点为根的小根堆,要求支持两种操作。 添加一个带点权的叶子,将该权值往上更新,维护堆的性质。 查询一个点的权值。 Solution 注意到小根堆是自上往下单调递减的。 链剖+权值线段树,询问节点可以再链上找第k大。 Code #include<cstdio> #include<cstdlib> #include<cstring...原创 2018-12-21 21:11:45 · 209 阅读 · 0 评论 -
【JZOJ6074】铁路
Description Solution 首先列车可能会在边中点相交,给每条边上加一个点,变成求点相交的对数。考虑如何不计算重,先固定根,我们统计两条向上走第一次相交的对数,还有一条向上一条向下的对数。 两条向上可以用线段树(启发式)合并求,就是在起点打加当前深度标记,lca处打减标记,自下往上深度相同时算一下即可。 至于向上向下的有些难处理,考虑链剖,在每一条重链上打标记,具体就是对于一条重链...原创 2019-03-21 14:55:36 · 284 阅读 · 0 评论