2023-4-24 #51 这世界 绝对不会只有一个轴心
——ChiliChill《丑马》
307 uoj#698. 【候选队互测2022】枪打出头鸟
异或卷积算法的本质:考察 \([x^u]F\) 与 \([x^v]G\) 贡献到 \([x^w]H\) 的本质,其贡献系数为 \((-1)^{u\cdot w}(-1)^{v\cdot w}=(-1)^{(u+v)\cdot w}\),恰好为 \(u+v\) 对应的 FWT 系数。
求正交线性基:先将线性基三角化得到 \(k\) 个关键位,直接将线性基除主对角线的部分转置,并令正交线性基剩下的 \(n-k\) 个位为关键位,复杂度 \(O(n^2)\)。
\([x^w]\hat A=2^k\) 的 \(w\) 构成了正交线性基的张成空间。
线性基求交:\(A\cap B=(A^{\perp}+B^{\perp})^{\perp}\)(\(A^{\perp}\) 表示 \(A\) 的正交线性基),复杂度 \(O(n^2)\)。
于是这题做法就是,倒着扫描序列做线性基求交,尝试用类似 前缀线性基 的方法记录每个基底最靠前的出现位置,询问直接在正交线性基里搞搞就好了(大概吧)?
308 CF1523H Hopping Around the Array
广告:他是 ISIJ 第一名,也是在线知名题库的洛谷“网红” 。
之前讲过,不过早就不记得了。
一个点进行若干次操作后到达的一定是一个区间,于是想到倍增求出多少步才能跨越过 \(r\),设出 \(f_{i,j,k}\) 表示从 \(i\) 出发跳 \(2^j\) 步,删除 \(k\) 个点能到的最远位置,预处理其需要用 ST 表处理区间最值,这里的复杂度是 \(O(nk^2\log n+nk\log^2 n)\)。
考虑如何处理查询,令 \(g_i\) 表示删了 \(i\) 个点,我们至多能跳多少步使得不越过 \(r\),转移就从高到低枚举每一位考虑每个 \(g_i\) 能否塞一个 \(2^k\) 进去。
这样做空间是 \(O(nk\log^2 n)\) 的,离线做就可以做到 \(O(nk\log n)\) 的空间。
309 CF1616G Just Add an Edge
首先判掉初始就有一条哈密顿路的情况,手玩可知我们要找到两条链,构成全集的二划分。
更精准的刻画是(假设加入的边是 \(x\leftarrow y\)):\(1\rightarrow y-1\rightarrow x\rightarrow y\rightarrow x+1\rightarrow n\)(其中 \(1\rightarrow y-1,x+1\rightarrow n\) 均只使用 \((z,z+1)\) 类边)。
不会做啊啊。
由于不存在哈密顿路,一定存在一个 \((z,z+1)\not\in E\),因此这两个位置分别属于两条链,容易得知选择连边的两个点 \(x\leftarrow y\) 一定满足 \(x-1\leqslant z\leqslant y\)。
所有这样的 \((z,z+1),(z+1,z)\) 都必须经过,我们可以从前往后 dp 一下就好了,复杂度 \(O(n+m)\)。
310 CF1423G Growing flowers
(破题水)
颜色段均摊处理区间推平,我们只要支持 \(O(n)\) 次整体颜色修改,根据贡献形式,对每个颜色开一棵线段树。
于是我们只用对于每个长为 \(w\) 的白色段,对 \(k\) 的答案造成 \(\max(w-k+1,0)\) 的贡献,容易使用线段树维护答案。
复杂度 \(O(n\log n)\)。
311 CF1508F Optimal Encoding
连出所有有限制的边一定能得到一个合法的 DAG,只需考虑最小化边数而不影响到达关系,但是这是 P6134 [JSOI2015]最小表示,肯定要进一步挖掘性质。
考虑对每条边 \(u,v\) 算贡献,其出现的一定是段区间,出现时间是第一次被区间包含的时间,消失时间是满足 \(a_u<a_w<a_v\) 的 \(w\) 与 \(u,v\) 第一次共同出现的时间。
假设我们得到了所有可能贡献的边,加入时间是好计算的,无非做一个二位数点状物。删除类似,对于每个 \(u,v\) 找到其序列里最接近的合法 \(w\) 位置,之后也是一个二位数点。找到这个 \(w\) 位置可以考虑从小往大加数,对于 \(v\) 位置取出所有 \(u\),以及所有 \(u\) 前面第一个小于 \(v\) 的位置(使用链表),扫一遍即可找到每个 \(u\) 对应的 \(w\)。
事实上可能有贡献的边数量是 \(O(n\sqrt q)\) 级别的,我们跑一遍莫队,每次加删都只会加入 \(O(1)\) 条边,使用回滚莫队+链表可以 \(O(n\sqrt q)\) 找到这些边。
复杂度 \(O(n\sqrt q)\)。
312 CF1060G Balls and Pockets
看不懂题解,有人教我吗。
😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭
313 uoj#99. 【集训队互测2015】普罗达科特
第一问即要求每个 \(x\) 互不相同,于是考虑使用集合划分容斥,我们以分拆数的复杂度枚举相同情况,并枚举每个连通块大小有多少个为 \(M\) 的约数(假设连通块大小为 \(v_1,v_2,\cdots,v_k\),\(c_1,c_2,\cdots,c_k\) 为每个连通块大小是否为 \(M\) 的约数)。
对于每个素因子考虑,即提取:
我们断言,其 \(k\operatorname{lcm}(v_1,v_2,\cdots,v_k)+r\) 项系数是关于 \(k\) 的 \(k\) 次多项式,于是暴力预处理前若干项插值即可(当然不要在枚举 \(c\) 的时候才预处理)。
314 CF1392I Kevin and Grid
使用欧拉定理,我们只需关心点数,边数,面数(这个较难处理)。
注意到不与边界相邻的连通块一定被一异色连通块包含,事实上一个这样的连通块,会与除了大小为四的正方形以及无限面外其余异色面一一对应。
将答案式子写出来,发现面数抵消了,而点数,边数,大小为四的正方形数均可以卷积处理,复杂度 \(O(n\log n)\)。

浙公网安备 33010602011771号