2023.12.25 近期练习

CF1793F

有一个朴素的想法,使用不删除莫队,使用一种数据结构维护相邻元素的差,\(O(n\sqrt q \log n)\)
可以通过链表加不增加莫队,维护最小值,使用值域分块,\(O(n\sqrt q+q\sqrt n)\)
即使如此,也因为常数过大无法通过。
考虑使用扫描线,从右往左扫描区间,将询问挂到左端点上。
大于小于是等价的,先处理大于的。
我们假设现在扫到 \(a_i\),同步记录一个 \(f_j\) 表示 \([i,j]\) 的答案。
先找到右边第一个大于 \(a_i\) 的,设为 \(a_j\),并将 \(j\) 点更新为 \(a_j-a_i\)
下一步,找下一个 \(a_k\in [a_i,a_j)\),并继续地更新。
这里有一个优化,就是 \(a_k\) 的范围可以调整为 \([a_i,\frac{a_i+a_j}{2}]\),因为在 \([\frac{a_i+a_j}{2},a_j]\) 的势必与 \(a_j\) 更近。
每次范围都减半,保证了复杂度,为 \(O(n\log ^2n +q\log n)\)
具体地,开一棵值域线段树维护当前值最小的位置,再开一棵线段树维护区间 \(f\) 的值。
这种问题是经典的区间询问问题,允许离线的话,应使用经典的扫描线模型。

CF1771F

出现次数为奇数,可以用异或来处理。
考虑建立主席树,可以查询一个区间的信息。
我们现在要求最小出现的数,考虑二分,只需要查询左边区间是否有数为奇数即可。
如果我们把每个数随机分配一个权值, 把所有数异或起来,如果有数出现奇数,那么一定有值。
二分可以放到线段树上二分。然后就做完了。
这类问题强制在线,只能用主席树,有关出现次数的应想到异或。

CF1788F

想到带权并查集,\(u\to v\) 路径权值给定为 \(w\) 的话那么 \(s_u\otimes s_v=w\)
我们可以通过带权并查集维护出若干连通块,同时可以判断无解的情况。
我们现在要求的是 \(a_i\) 异或的和,如何用 \(s_u\) 表示出来呢?
\(i=(u,v)\),那么 \(a_i=s_u\otimes s_v\),所以只有奇度数点的 \(s\) 是有贡献的。
那么如何填数值呢?拆位去填,设一个连通块中该位是 \(0\) 的有 \(c_0\) 个,\(1\)\(c_1\) 个。
如果根填 \(0\),那么值是 \(c_1\)。若填 \(1\),那么值是 \(c_0\)。调整即可。
默认填 \(0\),考虑把无论怎么填都是 \(1\) 的用可以填出 \(0,1\) 的去抵消。
这种问题是经典的带权并查集,之后二进制的处理应该用拆位,贪心即可。

CF1783F

先考虑只有一个数组 \(a\),若选了 \(a_x=i\)\(a_i\)\(a_x\) 交换会发生什么?
很套路的,把 \(a_i\)\(i\) 连边,代表 \(a_i\) 应前往 \(i\),那么会形成若干个环。
如果我们操作 \(i\) 会发生什么?那么 \(i\) 这个位置会形成自环,\(i\) 的两端会连在一起。
所以我们不断的删点,一个环若大小是 \(m\),那么只用删 \(m-1\) 个。
所以一张图的答案是 \(n-环的个数\)。那么两张图呢?
两种图不用删的点要是都不用删就好了,所以我们要尽量让不用删的点重合。
一个环只能出一个。将环做点去二分图匹配即可。
这种问题有关置换,可以建出“置换环”,之后转化成为二分图匹配的模型。

CF1778E

要支持换根以及查询子树,我们可以先钦定一个根 \(1\),设换根为 \(rt\),现在求子树 \(u\)
\(rt=u\),为整棵树;否则,若 \(rt\) 不在 \(u\) 原先的子树,是 \(u\)
否则,设 \(rt\)\(u\)\(v\) 子树内,就是 \(v\) 子树取反。
子树内的话用线性基合并,复杂度 \(O(n\log ^2n)\)
子树外怎么办呢?考虑把数拍成 dfs 序,如果预处理前后缀和,就可以 \(O(n \log^2 n)\)
这种问题异或应与线性基联系起来,还有子树外信息的处理有关 dfs 序。

CF1823F

一道很典型的题。
直接列出方程,设 \(f_u\)\(u\) 被经过的期望次数。
那么 \(f_u=[u=s]+\sum_{v\neq t} \dfrac{f_v}{deg_v}\)\(f_t=1\)
那么就是 \(n\)\(1\) 次方程,考虑高斯消元,换成树上高消即可。
具体是,将 \(f_u\) 表达成 \(f_u=Af_{fa}+B\) 的形式,从叶子节点向上推即可。
\(t\) 为根,由于 \(f_t\) 已知,再推回来即可。复杂度 \(O(n)\)

posted @ 2023-12-25 21:05  s1monG  阅读(21)  评论(0)    收藏  举报