摘要:
题面 模板题。直接容斥+矩阵树。复杂度 \(O(2^{n-1}(n-1)^3)\) 可以通过。 阅读全文
摘要:
题面 一个显然的做法是树剖之后dfs序线段树套时间线段树,直接做的复杂度是 \(O(n\log^3 n)\)。其实也可以把询问离线下来,做一个线段树分治,用树套树维护。 这样做比较麻烦,所以考虑另外一种思路:二分答案。因为有很多询问,不妨放在一起二分,所以可以想到整体二分。使用类似树上差分的思想,对 阅读全文
摘要:
题面 比较经典的带修树上第 \(k\) 大问题。通常的做法是树剖树套树然后树上二分,一般3到4个 \(\log\)。这个题还可以用整体二分解决。 思考一下这道题目的整体二分过程:二分一个答案 \(mid\),把所有的 \(>mid\) 的修改放到一个数据结构里,然后查询树上路径和。这显然可以使用树剖 阅读全文
摘要:
题面 \(q\) 次查询矩形第 \(k\) 小。考虑使用整体二分,二分一个值 \(mid\),矩形中小于等于 \(mid\) 的数设为 \(1\),大于 \(mid\) 的数设为 \(0\),统计每个询问的矩形中的和,若大于等于 \(k\),表示答案应该在 \([L,mid]\) 范围内,放到左边继 阅读全文
摘要:
题面 平面上两个操作:给一些坐标加权和查询矩形点权和。坐标 \(x,y\leq 2\times 10^6\),加权操作最多 \(1.6\times 10^5\) 个,查询操作最多 \(10000\) 个。 感觉时间和 \(x,y\) 大概能构成个三维偏序,直接上 cdq 分治。矩形查询看起来不是很好 阅读全文
摘要:
题面 考虑整体二分。solve(L,R,l,r) 表示解决的子问题为答案区间在 \([L,R]\) 内的所有问题 \(q_l...q_r\)。边界条件很容易,主要是考虑如何二分。\([L,R]\) 这一维相当于是描述的时间,那么考虑一个 \(mid\),然后把所有 \([L,mid]\) 时刻的修改 阅读全文