题面 https://loj.ac/problem/3247 题解 考虑CDQ分治。对于\(solve(l,r,v)\)(其中l,r表示当前处理到的区间的左右端点,v是一个vector,存放当前区间内待处理的所有询问的序号): 设\(m=(l+r)>> ...
题面 https: loj.ac problem 题解 不妨设向下坠落的方向为正方向,那么世界i所处的位置为 it A i i geq 。那么我们可以画出各世界的S t图像。 先考虑如果 A i gt A Q i ,即i需要追赶的情况。 如果射线i与射线j在某处相交,且j gt i,那么我们称这个点是i的 向上拐点 ,是j的 向下拐点 。 那么有性质 :从i出发,遇到向上拐点就拐,那么一定是一种最 ...
2020-02-09 14:18 5 490 推荐指数:
题面 https://loj.ac/problem/3247 题解 考虑CDQ分治。对于\(solve(l,r,v)\)(其中l,r表示当前处理到的区间的左右端点,v是一个vector,存放当前区间内待处理的所有询问的序号): 设\(m=(l+r)>> ...
题意 求所有\(n\)元逆序对数为\(k\)的排列所对应的笛卡尔树中(每次选区间最小连在父亲下,再分为左右两部分递归),求每个位置在所有树中的深度和 \(1 \le n \le 300\) 思路 ...
题解 loj3265 3266 3267 USACO 2020.2 Platinum(全) loj3265 「USACO 2020.2 Platinum」Delegation 题目链接 因为是最大化最小值,考虑二分答案。 设当前二分的答案为\(K\)。则要判断是否有一种划分方式 ...
LCA(least common ancestors)最近公共祖先 指的就是对于一棵有根树,若结点z既是x的祖先,也是y的祖先,那么z就是结点x和y的最近公共祖先。 定义到此。 那么怎么求LCA ...
LCA指的是最近公共祖先(Least Common Ancestors),如下图所示: 4和5的LCA就是2 那怎么求呢?最粗暴的方法就是先dfs一次,处理出每个点的深度 ...
先瞎扯几句 树上倍增的经典应用是求两个节点的LCA 当然它的作用不仅限于求LCA,还可以维护节点的很多信息 求LCA的方法除了倍增之外,还有树链剖分、离线tarjan ,这两种日后再讲(众人:其实是你不会吧:unamused:。。。) 思想 树上倍增嘛,顾名思义就是倍增 相信倍增 ...
Update: 2019.7.15更新 万分感谢[宁信]大佬,认认真真地审核了本文章,指出了超过五处错误捂脸,太尴尬了. 万分感谢[宁信]大佬,认认真真地审核了本文章,指出了超过五处错误捂脸,太尴尬了 ...
题面 LOJ#6435. 「PKUSC2018」星际穿越 题解 **参考了 这位大佬的博客 ** 这道题好恶心啊qwq~~ 首先一定要认真阅读题目 !! 注意 \(l_i<r_i<x_i\) 这个条件 !! 所以它询问的就是向左走的最短路了 . 不难发现只有两种策略 ...