题目杂选
不定期更新
Q.
\(n\) 个区间 \(\left [ l,r\right ]\),给每个区间分组,使每个组内的区间两两不交,求最小的组数。
A.
结论:组数 \(k\) 是合法的,当且仅当不存在一个点被所有区间覆盖 \(> k\) 次。
证明:定义两个区间的偏序关系,\(b < c\) 则 \(\left [ a,b\right ]< \left [c,d\right]\)。那么问题等价于最小链覆盖,根据 Dliworth定理最小链覆盖等于最长反链。在反链中的任意两点不存在偏序关系,所以反链中的所有区间交集不为空,因为不存在一个点被覆盖 \(k\) 次,所以最长反链 \(\le k\),即最小链覆盖 \(\le k\)。
通过这个结论,我们只需一个支持区间加,全局最大值的数据结构即可。
Q.
给定一个序列 \(a\),支持两种操作:
- \(\forall i \in \left[l,r\right],a_i = a_i \oplus x\)
- 求 \(\max \limits_{i=l}^{r} a_i\)
A.
因为有异或求最大值,不难想到 01trie,这个东西树套树是维护不了的,于是想到分块套 trie。
具体来说,对于每个块都开一颗 trie。在修改整块时可以直接打上 \(tag\),表示这个块被异或的值,在查询时直接查这个块中与 \(tag\) 异或值最大的即可。而散块可以将这个块的 trie 暴力重构,散块查询暴力即可,时间复杂度 \(O(n \sqrt n \log V)\)。
卡常技巧:重构可以在查询的时候再执行。
Q.
有 \(n\) 条线段,第 \(i\) 条为 \(a_ix+b_i\)。
你要选择 \(k\) 个在线段上的点,任意两个点的 \(x\) 坐标不同,\(x \in \left [ 1,k\right ]\),且 \(x\) 坐标相邻的两个点不能属于同一个线段。
特别地若一个点在多个线段上其可视为在其中一条线段上,而不是在所有线段上。
请你最大化 \(\sum_{i=1}^k y_i\)。
A.
\(f_{i,j}\) 表示考虑到 \(x \le i\) 的点,上一个选的是第 \(j\) 条线段的最大值。
暴力转移是 \(nk\) 的,考虑优化,注意到只有前三大值对 \(f_i\) 有影响,用李超树维护前三大值即可
Q.
给定排列 \(a\),定义函数 \(f\left(l,r\right)=\left(\min_{i=l}^r a_i,\max_{i=l}^r a_i \right)\)。有 \(q\) 次询问,每次给定 \(l,r\),定义一次操作为令 \(\left(l,r\right)=f\left(l,r\right)\),求最少操作几次使得 \(l=1,r=n\)。
A.
神秘找性质题。
首先有个性质 \(f \left( l,r \right)=\bigcup_{i=l}^{r-1} f \left ( i,i+1 \right)\),因为大区间是由小区间推出的,然后有个推论,\(f^k \left( l,r \right)=\bigcup_{i=l}^{r-1} f^k \left ( i,i+1 \right)\),可以归纳证明。
通过这个结论,倍增维护即可,时间复杂度 \(O(n \log^2 n)\)。
Q.
给定排列 $ P_n $ 和整数 $ k $,求满足如下条件的点对 $ (l, r) $ 数量。
- $ 1 \le l \le r \le n $。
- $ \max_{i = l}^rP_i - \min_{i = l}^rP_i \le r - l + k $。
A.
一个与 \(k\) 无关的做法。
考虑分治,不跨过分治中心的区间的贡献直接递归统计即可,难点主要在跨过分治中心的区间的贡献。
\(\max\) 和 \(\min\) 在计数时比较难处理,不妨钦定它们分别在左半区间还是在右半区间,分别计算每种情况的贡献,因为这是排列所以是不重不漏的。
-
\(\max\) 和 \(\min\) 在左半区间。枚举区间的左端点,此时右端点是单调不降的。直接双指针维护即可。
-
\(\max\) 和 \(\min\) 在右半区间。和第一种情况是本质相同的。
-
\(\max\) 在左半区间,\(\min\) 在右半区间。同样枚举区间的左端点,考虑右端点的取值范围,不难发现右端点的取值范围是一个区间。因为 \(\max\) 限制了右端点的上界,而 \(\min\) 限制了右端点的下界,随着左半区间的后缀最小值不断变小,右端点下界肯定是递增的,而上界同理。所以问题变为对于一个区间满足一个不等式的点数,二维数点即可。
-
\(\min\) 在左半区间,\(\max\) 在右半区间,与情况三同理。
实现时,二维数点我用的主席树,所以时间复杂度 \(O(n \log^2 n)\)。

浙公网安备 33010602011771号