07 2018 档案
摘要:[TOC] 虚树一开始听的时候觉得很高深,其实也是一个比较容易的东西。 可以称它是个数据结构,也可以称它是个算法,反正比较好用啦~ 定义 虚树就是将原树中的点集 S 拿出来,构成一棵新的并能保持原树结构的一棵树。 保持结构,意味着对于 ∀x,y∈S ,他们的最近公共祖
阅读全文
摘要:题面 我们定义一个数是单调数,当且仅当构成这个数每一个数位都是单调不降或不增的。 例如 123 和 321 和 221 和 111 是单调的,而 312 不是单调的。 给定 T 组 l,r,每次询问 [l,r] 中有几个单调的数。 $l, r \le 10 ^ {
阅读全文
摘要:[TOC] 本文参考自算法发明者 immortalCO(猫锟) 的博客 "一种高效处理无修改区间或树上询问的数据结构(附代码)" 。 感谢 猫锟 提供了对于一类题比较通用的解决办法,以及思路启发。 问题描述 给出一个某种元素的序列 a1,a2,…,an,要求进行 m 次询问,
阅读全文
摘要:本文参考了 lych 在雅礼的讲解,感谢他的付出。 转化成序列问题 dfs序 按照 dfs 的入栈顺序形成一个序列。 例如对于这棵树 它的 dfs 序就是 1 2 3 4 5 6 7 8 。(假设我遍历儿子是从左到右的) 树链剖分的运用 对于这个我们常常配合 树链剖分 来使用
阅读全文
摘要:题意 LOJ #2721. 「NOI2018」屠龙勇士 题解 首先假设每条龙都可以打死,每次拿到的剑攻击力为 ATK 。 这个需要支持每次插入一个数,查找比一个 ≤ 数最大的数(或者找到 > 一个数的最小数),删除一个数。 这个东西显然是可以用 std :: multis
阅读全文
摘要:题意 给你一个长为 n 的排列 p ,问你有多少个等长的排列满足 1. 字典序比 p 大 ; 2. 它进行冒泡排序所需要交换的次数可以取到下界,也就是令第 i 个数为 ai ,下界为 n∑i=1|iai| 。 题解 一道特
阅读全文
摘要:题意 给你一个无向图,其中每条边有两个值 l,a 代表一条边的长度和海拔。 其中有 q 次询问(强制在线),每次询问给你两个参数 v,p ,表示在 v 出发,能开车经过海拔 p 的边,其中 ≤p 的边只能步行,步行后不能继续开车了。 询问它到 1 号点最少要步
阅读全文
摘要:题意 "LOJ 2359. 「NOIP2016」天天爱跑步" 题解 考虑把一个玩家的路径 (x,y) 拆成两条,一条是 x 到 lca ( x,y 最近公共祖先) 的路径,另一条是 lca 到 y 的路径。(对于 x,y 是 lca 的情况需要特殊考虑一下就行了
阅读全文
摘要:题意 给你一棵有 n 个点并且以 1 为根的树。共有 q 次询问,每次询问两个参数 p,k 。询问有多少对点 (p,a,b) 满足 p,a,b 为三个不同的点,p,a 都为 b 的祖先,且 p 到 a 的距离不能
阅读全文