摘要:
题目链接:CF 或者 洛谷 关于非随机数据的颜色均摊是 \(O(n)\) 的,在往期文章中已经提过。本题需要考虑一下关于操作二的一个影响怎么进行处理。其实这个东西我们可以类似标记永久化的思想去开一个数组记录 \(tag[color]\) 表示这种颜色最终需要加多少。 解下来我们要来考虑一个问题,如果 阅读全文
摘要:
题目链接:CF 或者 洛谷 不是很难的题,但在这里提供一个动态开点线段树怎么卡空间卡过去的极致空间处理技巧 全局 \(mex\) 问题,常见的做法就是维护权值树,然后找第一个没有权值的点,可以维护 \(\min\),但本题存在第三个操作,所以不能再去传统地维护 \(\min 或者 \max\) 去辅 阅读全文
摘要:
题目链接:序列 挺神仙的好题 关于时间维上的贡献处理,之前做过一些类似的题,这题是很不错的体现题。 对于一个数的查询来说,我们暴力地看看它的变化: 时间维有个很重要的特点,当前时间点的修改只会影响后续的所有时间点。对于某个时间点 \(i\),如果它的修改 \([l,r]+val\) 包括了 \(po 阅读全文
摘要:
题目链接:数颜色 经典题目了,暴力数据结构随便过,不过这种不带修的单个颜色的数量查找有个经典的做法:分桶+二分。具体的为每个颜色分桶,记录有序下标,这样就可以二分出 \([l,r]\) 上的下标个数。对于一次交换来说,如果相邻的颜色相同那么并不会发生交换,如果不同那么就发生交换,由于下标在桶里,我们 阅读全文
摘要:
题目链接:校园网Network of Schools 这个题得翻译下题目意思才知道在干嘛,题目一开始表明了这个是一个有向图,因为边是单向的。其次关于第一个问题: 基于一个事实,如果有 \(x \rightarrow y \rightarrow z\),那么只需要 \(x\) 接受协议,它所在的 \( 阅读全文
摘要:
题目链接:园丁的烦恼 挺经典的题目,转化成二维数点去做 这玩意和常规的偏序计数问题有区别: 转化为求 \(a \le x \le b \ \&\& \ c \le y \le d\) 的数量,这种就别想着拆来拆去了,这种权值类带偏序计数类问题,是经典的可差性问题,我们计:\(ans(x,l,r)\) 阅读全文
摘要:
题目链接:森林 有意思的树上可持久化线段树变形题,建议先看这个:P2633 Count on a tree 题解 对于本题而言,我们重新阐述树上可持久化线段树的核心思想,对于点路径/边路径上的第 \(k\) 大问题,我们使用树上前缀和问题的思想,将其转化为可差性问题:一条路径上的权值线段树可以拆分为 阅读全文
摘要:
题目链接:Count on a tree 大概可以认为是树上主席树的板子 我在之前的某些题解提到了,主席树一般来说有两个基本功能: 可持久化功能,可以选择回退或者新增版本。 对于可差性问题,可以有更好的转化为前缀和做法,常见的问题为权值类型问题。 在树上的路径第 \(k\) 大,显然如果我们能拿到这 阅读全文
摘要:
洛谷题目链接:排序 abc题目链接:Atcoder 或者 洛谷 两道差不多的题拿出来说说。本题有双 \(\log\) 做法,也有单 \(\log\) 做法,都讲讲。 双 \(\log\) 做法 对于第一个题而言,询问最终 \(pos\) 位置上的数为多少,那么这个问题是否具有单调性?这个是很有意思的 阅读全文
摘要:
题目链接:列队 这题的正解真技巧性,平衡树和线段树做法不再赘述,主要来讲讲这个离线的树状数组倍增是怎么玩的,感觉很妙蛙种子。 简单回顾 回顾几个简单知识点: 权值树状数组如何找第 \(k\) 大,直接树状数组上倍增找到 \(\sum cnt \le k-1\) 的最大值,而这个 \(\sum cnt 阅读全文