摘要:
题意 有 $n$ 个人,每个人手里有一把手枪。一开始所有人都选定一个人瞄准(有可能瞄准自己)。然后他们按某个顺序开枪,且任意时刻只有一个人开枪。 因此,对于不同的开枪顺序,最后死的人也不同。 问最后死的人数最小值以及最大值。 $(1 \le n \le 10^6)$ 题解 不难发现是一道思博构造题。 阅读全文
摘要:
题意 "click here" 题解 我们首先考虑答案是个什么样的东西, ~~不难~~ 发现每个点可以单独计算它的贡献。 令每个点 $i$ 崛起次数为 $a_i$ 。 假设一个点子树的 $\sum a_i$ 分别为 $b_1,b_2,\dots,b_k$ ,令 $S = a_i + \sum b_j 阅读全文
摘要:
题意 给你一颗 $n$ 个点的树,每个点的度数不超过 $20$ ,有 $q$ 次修改点权的操作。 需要动态维护带权重心,也就是找到一个点 $v$ 使得 $\displaystyle \sum_{v} w_v \times \mathrm{dist}(u, v)$ 最小。 数据范围 $n \le 10 阅读全文
摘要:
[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$ 号点最少要步 阅读全文