做题
学习了莫队二次离线(未真正掌握)
CF2034F2 \(2^k\) 的组合意义是选子集,这里把 \(2^k\) 再拆为 \(1+2+\dots +2^{k-1}+1\) 可以直接叠加关键点的贡献。那么一个关键点的贡献就变成了选后面的一个集合要求必须经过,这个可以 dp。
CF1463F 显然(?)答案是关于前缀 \(x+y\) 个循环的。对前 x+y 个,两数冲突当 \(a\pm x\equiv b\pmod{(x+y)}\),直接 dp 获得 \(O(x+y)\)。
CF1188D 数位 dp,重点在进位信息。注意到进位的情况只有 \(n\) 种:\(\bmod 2^k\) 排序后前 \(i\) 个,直接 dp 做到 \(n\log V\)。
P4547 可以拆开二三类边的限制变成第一种(神秘)。然后 dp。
P3780 DFS 序背包。相当于免费选一条链,而一个链分开的 dfs 序恰好是前缀后缀,合并 dp 即可。
ARC124E 显然把操作序列 \(\min=0\) 的玩意拉出来即可。经典之乘积是每个人选择一个。然后直接 dp??
AT_tdpc_grid 注意到宽 \(\le 6\) 就至多有两个不和 \((1,1)\) 联通的连通块,直接 dp 获得 \(O(8^nm)\),但是实际上状态数没那么多,BM 发现还要少。
ARC176D/P4223 每个数的位置不是本质影响,因此对于一个原是 \((A,B)\) 的相邻对,设 \(C\) 代表不同于 \(A,B\) 的任何数,则只需统计到达 \((A,B),(A,C),(C,A)\) 等等情况的方案数,可以列一个 7*7 的矩阵搞出方案数之后容易统计。
P4546 需要做加法操作,把那些函数拿去泰勒展开即可维护,误差可以接受。
P4338 换维扫描线,建若干虚点 \(x\) 再把这一区间的 0 操作连向它,可以统一操作,初始连向前面的虚点。更换生长节点就把虚点连那去。然后求 dis 先两次 access 求 LCA,然后统计。
P4338 似乎是得到结论之后改到根轻链信息云云,树剖也可以的。
P11420 首先 \(C\) 义眼是假的。又是乘积化为选,又转化为操作选子集,于是得到 \(O(nm2^m)\)。然后在神秘的是在 \(3m\ge n\) 的时候 \(a\) 的合法性可以简易判定,因此可以 dp 又得到 \(O(n^6)\) 的复杂度,数据分治一下。
P1861 确可感受到和操作方式无关,,然后推一下势能函数。
P5649 似乎叫什么 AAAT,可能会写一个博客。当然不会 top tree。
P5072 根号分治之后莫队。
P5064 建出操作树,然后值域分块,用撤销并查集(根上挂个链表维护这个)维护。每个值域块 dfs ,遇到询问就看看落在这个值域块和总数的个数,该回答了就链表拉出来 nth_element。预记下合并和查询的 Find 值就可以不带 log。
ARC184B 和 HNOI 集合选数类似 dp。一个小优化是整除分块,一个整除的结构一定一样,这样复杂度降到了什么 \(O(n^{0.84}\log n)\),应该是不满的。
ARC150F 考虑子序列自动机的匹配,设 \(f_i\) 为和为 \(i\) 的话匹配到的最长距离,转移是 \(f_i=\max_{j}(nxt(f_{i-j},j))\)。而注意到 \(nxt(i,k)<nxt(j,k)\Rightarrow nxt(i,k)<j\),那么 cdq 分治转移,每次转移枚举 \(j\) 之后只需考虑和左边右端点 nxt 相同的一段。用线段树维护 dp 值即可 \(O(n\log^2 n)\)。
AGC055C 寻找充要条件:考虑 \(a\) 全等,此时只需 \(2k\le n\);否则,两个必经点之间,也是这个限制。
ARC180E(hanghang 场切) 发现 dp 无用转移,云云。
P6914 关键结论:考虑两环 \(A,B\),则 \(A-B,B-A,A\cap B\) 都必须满足条件;否则一个中 \(i\) 颜色少了,剩下两个加起来 \(a\) 就占比多了,但是任意两个组合都必须满足条件,矛盾。这样做去,最终得到的等价类是那些(在的简单环集合 \(S\))相同的。如果移除 \(e_1\),\(e_2\) 是割边,那么 \(S_{e_2}\subset S_{e_1}\);这样可以 \(O(n^2)\) 判 \(S\) 的相等。最后的答案是等价类(除了割边等价类)大小的 gcd。
总结
在家里还是有一些好处,但是也有一些坏处。
下周(可能是以后)大部分又要回到联考来了,这对省选的准备是有很大好处的。会考需要简单复习(还没开始)。