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

浙公网安备 33010602011771号