随笔分类 - 题解
摘要:这题跟由乃打扑克的唯一区别就是这题不会放错解过了吧…… 求出 DFS 序,问题变为区间加区间 k 小值。 考虑分块,维护每个块排序的结果, 修改时散块归并,整块打标记, 查询时先把散块归并起来,然后二分答案, check 时散块在归并出的数组上二分,整块在其排序的结果上二分, 设块长为 ,总复
阅读全文
摘要:lxl 说过邻域信息维护父亲一定死,所以考虑对每个点维护其所有儿子构成的平衡树, 发现这样还是不行,于是对每个点维护其所有轻儿子构成的平衡树, 发现这样就可以了,因为每次链加只会修改 个点的平衡树。 在维护平衡树的过程中需要单点求值,再维护个树状数组即可。 俩
阅读全文
摘要:这个大房子可以看成一张 的网格图, 柱子不能打通的限制可以看成删去每个柱子对应的点, 此时答案即为剩下的图的生成树个数。 用矩阵树定理求解即可。 #include <cstdio> #include <algorithm> #define M 1000000000 #defi
阅读全文
摘要:给矩阵中每个点一个编号,维护 表示 点四周的点, 点四周的点与 点的点权差。 一次操作只会改变选定的子矩形边框上 个点四周的点,分别修改它们的 即可。 然而存在一个问题:旋转操作会使选定的子矩
阅读全文
摘要:手玩样例可以发现,把树划分为若干极大同 连通块, 若存在 满足极大 连通块不唯一,则无解。证明比较平凡。 另外,若存在 满足没有 的点,也无解。证明比较平凡。 把每个唯一的极大 连通块缩起来,建出一棵新树 , 设
阅读全文
摘要:对主串建 SAM。 对于一次询问,考虑枚举询问串的所有循环同构, 问题变为维护串 (初始为询问串),每次从 开头删去一个字符,在 结尾加入这个字符,然后求 在主串中的出现次数, 类似 LCS 地,维护 在主串中出现过的最长后缀长度 及其对应节点 ,
阅读全文
摘要:建广义 SAM,考虑统计 表示 点在每个串中分别出现多少次, 也就是说,对于 串的每个前缀,将其对应节点的 link 树根链上每个点 的 加上 。 可以将其树上差分为单点加,子树求和,最终可以得到每个 点的 $e_
阅读全文
摘要:建广义 SAM,考虑标记 表示 点属于哪个串(特别地,若 点属于多个串,则 )。 也就是说,对于 串的每个前缀,将其对应节点的 link 树根链“染上” 色, (注意这里的“染色”与传统的染色不同,若一个点被染上多种颜色,则其颜色为 $-1
阅读全文
摘要:咋都是找规律,来点暴力做法。 设 表示 时 的值, 表示 时 的值, 设 $h_i=\begin{cases}1&i\equiv 1\pmod 2\-1&i\equiv0\pmod 2
阅读全文
摘要:简化题意:公共回文串计数。 对两个串分别建 PAM,然后同时遍历它们,每次只走它们共有的边, 此时能遍历到的点就是两个串的所有公共回文串,考虑每个点的贡献。 对 PAM 上每个点 求出 表示其出现次数,则能被同时遍历到的点对 的贡献即为 $c_i\times c_
阅读全文
摘要:对一次询问,假设已经建出了这条树链的线性基,考虑存在两个子集异或和相等的条件。 若存在未成功插入线性基的数 ,则一定可以在线性基中选出异或和为 的子集 ,此时存在 与 异或和相等。 否则,树链的 个子集异或和对应线性基的 个互不相同
阅读全文
摘要:离线下来按 扫描线,问题变为维护一个集合,支持插入元素,查询异或和为 的子集个数。考虑线性基维护。 对每个未成功插入线性基的数 ,都能在线性基中选出若干数与 异或和为 ,记选出的这个异或和为 的子集为 。 对一次询问 ,若能在线性基中选出异
阅读全文
摘要:插入删除区间查询,考虑直接在平衡树上维护答案。 设 的左子树为 ,右子树为 , 点的权值为 ,则对于一个 , 子树的答案为 $$ \begin{aligned} &\sum a_i\times i^k\ =&v\times(|L|+1)^k+\sum_L
阅读全文
摘要:考虑链怎么做。问题变为给一些区间 ,选最少的点使得每个 内都有至少一个点, 这个是贪心经典题,按右端点排序即可,考虑在树上类似地贪心。 钦定 为根。可以发现选 可以解决所有曲链,不妨先考虑只有直链的情况。 设 表示 的
阅读全文
摘要:通过拉格朗日插值,确定一个 次多项式只需要 个点值,也就是只需要 次询问。 多项式的值是模 意义下的,所以有零点时 内必有一个零点,枚举这个范围即可。 #include <cstdio> #define M 1000003 #
阅读全文
摘要:莫队,考虑加入、删除的贡献。 需要维护若干二元组 ,支持 单点修改, 区间加减 ,求全局 ,其中 是斐波那契数列, 维护 $B_i=\begin{bmatrix}f_{b_i}&f_{b_i-1}\end{b
阅读全文