06 2021 档案
摘要:Problem \(\text{Solution:}\) 这东西的输入有些新奇,写一个递归函数即可。 观察到题目要求的是子树交换,没有修改。而且,显然地,这样的结构必然要满足对于它每一个子结构都达到最优。而且任意一棵子树内部交换对答案的影响是独立的。 考虑从下往上维护答案,每次需要合并两棵子树的信息
阅读全文
摘要:Problem \(\text{Solution:}\) 菜鸡太菜了想了好久没有思路……只知道要求树上链的并集但不知道咋整……虽然题目算法线段树合并和树上差分看到题就能想到……但是怎么做还是有思维难度……(对笔者来说) 看了好久的题解都没有看懂 这次写的详细一点。 所谓矩阵面积并 某些题解中说了一句
阅读全文
摘要:Problem \(\text{Solution:}\) 这题看着和 HH的项链 很像。回忆一下: 项链那题我们维护了一个颜色 最右端出现的位置 ,将询问离线排序,每次遇到一个颜色就更新它的位置。 由于询问右端点是递增的,这个做法正确性显然。 那么这个题呢?我们要求一个区间中颜色的次数至少出现两次。
阅读全文
摘要:Problem \(\text{Solution:}\) 开始有一种暴力的做法:对每一行维护 \(100\) 个树状数组对应 \(100\) 个颜色。查询枚举行来查询。 复杂度:\(O(m\cdot \log n\cdot q)\) 过不去的样子。 考虑用二维树状数组,直接维护二维矩阵。修改与查询的
阅读全文
摘要:Problem \(\text{Solution:}\) 题目求的就是一棵子树中大于根节点权值的节点数。 这东西一看就很权值线段树。 然后发现这东西又很线段树合并。 考虑对每一个点维护一棵权值线段树。这样,我们将子树的信息合并到根的权值树上,就可以做到 \(n\log n\) 合并信息了。 然后对每
阅读全文
摘要:ZZ菜鸡犯傻了……被旁边 gzh 神仙秒了并 D 了一番……过来写个题解。 Problem \(\text{Solution:}\) 离散化一下,把式子推一下: \(\sum (a_i-b_i)^2=\sum a_i^2+b_i^2 +\sum a_i\cdot b_i\) 前面两个是定值,要处理最
阅读全文
摘要:Problem \(\text{Solution:}\) 记 \(cnt_x\) 表示数 \(x\) 的出现次数。 那么,一个数 \(x\) 能删去的范围应该是: \([x-cnt_x+1,x].\) 考虑一个序列能被删去,当且仅当它的范围被完全覆盖到。 所以最小修改次数就是 没有被覆盖的区间的长度
阅读全文
摘要:Problem \(\text{Solution:}\) 分析题目,我们看不到一个房子,当且仅当它的斜率严格不大于前面的房子斜率。 题目让我们求的就是:强制选择出严格单调递增的序列长度最大值,全局询问,单点修改。 看着很线段树,但是区间的信息怎么去合并呢? 开始的思路:首先长度必须要维护,然后维护一
阅读全文
摘要:这种题第一眼看上去不可做,我们考虑证明一个结论: 对于一个区间的 \(Lipschitz\) 常数 \(k\) ,应满足: \(k=\max_{i=l}^{r-1} \left\{\frac{a[i+1]-a[i]}{i+1-i}\right\}\) 即 \(k=\max_{i=l}^{r-1} \
阅读全文
摘要:Problem \(\text{Solution:}\) 对于 p1 的获得条件,要求端点两个值恰好是次大值和最大值;对于 p2 的获得条件,要求其中一个是最大值。 线段树并不一定是用来动态直接回答询问的,这题区间的答案也并不好合并。考虑处理出每一个点左右比他大的第一个数的位置后贡献应该长什么样:
阅读全文
摘要:Problem \(\text{Solution:}\) Loj真好用) 观察一下发现我们只需要简单维护区间最大值就可以了。但是如何判断 maybe 的情况? 对于未知年份: 考虑我们如果不知道一对已知年份中有没有未知年份,那一定有一个未知年份是和一个已知年份相邻的。 所以,我们在离散化的时候将所有
阅读全文
摘要:Problem \(\text{Solution:}\) 本文用的 FHQ_Treap 合并来实现。 观察到数据范围很大,如果做过 方伯伯的OJ 和 ZJOI的书架 那题应该可以想到,这个题是这两个题的操作弱化版 但是却成了二维。 因为数据范围的原因,我们不能像 ZJOI书架 那题一样直接把点全部建
阅读全文
摘要:Problem \(\text{Solution:}\) 当$k=1$的时候,中位数就可以解决问题。 这引起思考:$k=2$是不是一个拓展版? 考虑无论将线段按照左还是右端点排序都不能满足要求,于是我们发现:当桥靠近一个线段的中点的时候,走它一定会优。 所以,我们将线段按照中点排序,并考虑枚举分界点
阅读全文
摘要:Problem \(Solution:\) 这题看起来和 ZJOI 那个书架很像叭,但是它的数据范围不友好。 于是引入一个思路:将没有访问过的点合并成一段。这也意味着,树上每个节点中的排名和编号均是递增的。 考虑一下发现,我们需要维护一个编号对应的排名(用 map ),还需要排名对应的编号。 于是,
阅读全文
摘要:Problem \(\text{Solution:}\) 首先发现模数不是质数,这意味着没有逆元可以让我们把除操作变成乘操作。而$x$本身又没有去取模,所以我们应该考虑维护一段连续区间的乘积。 那么删除操作就变成了将某个之前的节点删除。这对于 fhq_treap 是小意思了。 由于是一段有序的操作区
阅读全文
摘要:用的 fhq_treap 不得不说比 splay 好写多了 (虽然以后写LCT还是要用是play) P1110 报表统计 考虑维护两个平衡树 一个维护相邻两数的差 一个维护不相邻的数差 实际上每次插入一个数,维护相邻数的平衡树需要删掉一个原本相邻的差值并加入两个新的值,而不相邻的极差只需要每次操作时
阅读全文