随笔分类 - 题解
摘要:能字符串哈希为什么要写高科技啊。 点分治之,考虑一个子树 的贡献。 考虑如何判断 到分治中心 的路径能否成为“ 的重复”的前缀 / 后缀。 先序遍历 ,动态地维护 到当前遍历到的点 的路径形成的字符串 , 进入一个点相当于在
阅读全文
摘要:树上问题全家桶。 以给出的点集建出虚树,然后问题转化为对每个关键点,求其到其他关键点的虚树链上颜色段数之和。 注意虚树的一条边是原树的一条链,所以虚树某条链上的颜色段数并不是简单的虚树上这些点形成的颜色段数。 所以令虚树的边权为其在原树上对应的链上的颜色段数 ,则此时虚树某条链上的颜色段数为
阅读全文
摘要:【模板】读题 本蒟蒻码量上 3k 的第二题 公司为了减少成本,回收时从区域 到任何一个区域 都选择长度最短的路径,如果有多条到某一个区域的最短路径,则选择所有最短路径中该区域的前一区域编号最小的一条路径,称这条路径为 到 的回收路线。所有的回收路线组成一棵树状
阅读全文
摘要:单点修改,矩阵 kth,考虑树套树。 发现需要套三层,考虑怎么不写权值线段树套二维线段树。 用 KDT 代替掉两层数据结构即可。 KDT 套权值线段树是不可行的,因为 KDT 依赖 push up,需要权值线段树合并。 权值线段树套 KDT 是可行的,外层权值线段树上每个点维护一棵 KDT 表示对应
阅读全文
摘要:lxl 说过邻域信息维护父亲一定死,所以数据结构维护每个点的儿子,特判父亲。 考虑每个点的数据结构需要支持什么操作:全局加一,单点修改,全局异或和。用 01Trie 维护。 与维护最大异或对的 01Trie 不同,从低位到高位建树,每个点上维护子树异或和,修改时 push up。 考虑怎么 push
阅读全文
摘要:二分这个最大长度,设当前二分中点为 。 把所有长度为 的子串算出来,扔进哈希表里。 然后如果某哈希值的出现次数 ,则 合法。 复杂度 ,可以过掉。 #include <cstdio> #include <cstring> #include
阅读全文
摘要:二分这个最大长度,设当前二分中点为 。 把所有长度为 的子串算出来,扔进哈希表里。 然后如果某哈希值的出现次数 ,则 合法。 复杂度 ,可以过掉。 #include <cstdio> #include <cstring> #include
阅读全文
摘要:基本就是 CF558E。 注意到字符集很小,考虑维护出区间每个字母出现次数,然后直接重排。 显然,若出现奇数次的字母 个,则无法操作。 按字典序依次重排,如果剩下一个出现奇数次的字母就放在中间。 区间覆盖区间查询,线段树维护。 #include <cstdio> #include <cct
阅读全文
摘要:权值线段树。 finally let's find the minimum among counted maximums. 最大值最小。二分。设当前二分中点为 。 容易发现 的试管才会造成贡献,若 则
阅读全文