随笔分类 - 数据结构----线段树合并
摘要:https://www.luogu.org/problemnew/show/P4384 容斥一下考虑计算切两刀使得三个串都不存在的s[l,r]的方案数。 分类讨论一下。 1.有三个互不相交的目标串 此时显然无解。 2.最左边的目标串和最右边的目标串相交 画一下图可以发现。 答案是一个sigema (
阅读全文
摘要:链接:http://uoj.ac/problem/176 对于这种边权难以直接维护的都直接考虑brouvka算法。 显然,我们要做的是实现一个可以查询&x最大的数据结构。 可以先对于所有权值建立一颗01 trie树。 考虑在trie树查询答案的过程,可以考虑一个从高位到低位的贪心。 当x的第i位为1
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3413 显然答案等于模式串si和模板串的每一个后缀的匹配长度之和。 这里忽略了匹配成功的情况,那种情况只需要额外特判一些东西。 显然可以用线段树合并维护出right集合。 按照要求查询即可。 cpp
阅读全文