随笔分类 -  数据结构----线段树合并

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

点击右上角即可分享
微信分享提示